http-client-branch: merge with default http-client-branch
authorchegar
Fri, 27 Jul 2018 12:16:01 +0100
branchhttp-client-branch
changeset 56842 43c3b82728eb
parent 56841 d5fa8a463060 (current diff)
parent 51257 979e349059eb (diff)
child 56868 67c7659ecda5
http-client-branch: merge with default
src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java
src/java.net.http/share/classes/jdk/internal/net/http/WindowController.java
src/java.net.http/share/classes/jdk/internal/net/http/frame/SettingsFrame.java
test/jdk/ProblemList.txt
test/jdk/java/net/httpclient/http2/server/Http2TestServerConnection.java
test/langtools/tools/javac/processing/environment/round/AnnotatedElementInfo.java
--- a/.hgtags	Tue Jul 24 10:07:26 2018 +0100
+++ b/.hgtags	Fri Jul 27 12:16:01 2018 +0100
@@ -497,5 +497,7 @@
 00b16d0457e43d23f6ca5ade6b243edce62750a0 jdk-12+1
 9937ef7499dcd7673714517fd5e450410c14ba4e jdk-11+22
 1edcf36fe15f79d6228d1a63eb680878e2386480 jdk-11+23
+ea900a7dc7d77dee30865c60eabd87fc24b1037c jdk-11+24
 69b438908512d3dfef5852c6a843a5778333a309 jdk-12+2
 990db216e7199b2ba9989d8fa20b657e0ca7d969 jdk-12+3
+499b873761d8e8a1cc4aa649daf04cbe98cbce77 jdk-12+4
--- a/doc/building.html	Tue Jul 24 10:07:26 2018 +0100
+++ b/doc/building.html	Fri Jul 27 12:16:01 2018 +0100
@@ -1,16 +1,11 @@
 <!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<html>
 <head>
-  <meta charset="utf-8" />
-  <meta name="generator" content="pandoc" />
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+  <meta charset="utf-8">
+  <meta name="generator" content="pandoc">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
   <title>Building the JDK</title>
-  <style type="text/css">
-      code{white-space: pre-wrap;}
-      span.smallcaps{font-variant: small-caps;}
-      span.underline{text-decoration: underline;}
-      div.column{display: inline-block; vertical-align: top; width: 50%;}
-  </style>
+  <style type="text/css">code{white-space: pre;}</style>
   <link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css">
   <!--[if lt IE 9]>
     <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
@@ -134,8 +129,8 @@
 <p>The JDK is a complex software project. Building it requires a certain amount of technical expertise, a fair number of dependencies on external software, and reasonably powerful hardware.</p>
 <p>If you just want to use the JDK and not build it yourself, this document is not for you. See for instance <a href="http://openjdk.java.net/install">OpenJDK installation</a> for some methods of installing a prebuilt JDK.</p>
 <h2 id="getting-the-source-code">Getting the Source Code</h2>
-<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="http://hg.openjdk.java.net/">OpenJDK Mercurial server</a> you can see a list of all available forests. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
-<p>If you are new to Mercurial, a good place to start is the <a href="http://www.mercurial-scm.org/guide">Mercurial Beginner’s Guide</a>. The rest of this document assumes a working knowledge of Mercurial.</p>
+<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="http://hg.openjdk.java.net/">OpenJDK Mercurial server</a> you can see a list of all available forests. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
+<p>If you are new to Mercurial, a good place to start is the <a href="http://www.mercurial-scm.org/guide">Mercurial Beginner's Guide</a>. The rest of this document assumes a working knowledge of Mercurial.</p>
 <h3 id="special-considerations">Special Considerations</h3>
 <p>For a smooth building experience, it is recommended that you follow these rules on where and how to check out the source code.</p>
 <ul>
@@ -144,7 +139,7 @@
 <li><p>Put the source code on a local disk, not a network share. If possible, use an SSD. The build process is very disk intensive, and having slow disk access will significantly increase build times. If you need to use a network share for the source code, see below for suggestions on how to keep the build artifacts on a local disk.</p></li>
 <li><p>On Windows, extra care must be taken to make sure the <a href="#cygwin">Cygwin</a> environment is consistent. It is recommended that you follow this procedure:</p>
 <ul>
-<li><p>Create the directory that is going to contain the top directory of the JDK clone by using the <code>mkdir</code> command in the Cygwin bash shell. That is, do <em>not</em> create it using Windows Explorer. This will ensure that it will have proper Cygwin attributes, and that it’s children will inherit those attributes.</p></li>
+<li><p>Create the directory that is going to contain the top directory of the JDK clone by using the <code>mkdir</code> command in the Cygwin bash shell. That is, do <em>not</em> create it using Windows Explorer. This will ensure that it will have proper Cygwin attributes, and that it's children will inherit those attributes.</p></li>
 <li><p>Do not put the JDK clone in a path under your Cygwin home directory. This is especially important if your user name contains spaces and/or mixed upper and lower case letters.</p></li>
 <li><p>Clone the JDK repository using the Cygwin command line <code>hg</code> client as instructed in this document. That is, do <em>not</em> use another Mercurial client such as TortoiseHg.</p></li>
 </ul>
@@ -161,7 +156,7 @@
 <h3 id="building-on-armaarch64">Building on arm/aarch64</h3>
 <p>This is not recommended. Instead, see the section on <a href="#cross-compiling">Cross-compiling</a>.</p>
 <h2 id="operating-system-requirements">Operating System Requirements</h2>
-<p>The mainline JDK project supports Linux, Solaris, macOS, AIX and Windows. Support for other operating system, e.g. BSD, exists in separate “port” projects.</p>
+<p>The mainline JDK project supports Linux, Solaris, macOS, AIX and Windows. Support for other operating system, e.g. BSD, exists in separate &quot;port&quot; projects.</p>
 <p>In general, the JDK can be built on a wide range of versions of these operating systems, but the further you deviate from what is tested on a daily basis, the more likely you are to run into problems.</p>
 <p>This table lists the OS versions used by Oracle when building the JDK. Such information is always subject to change, but this table is up to date at the time of writing.</p>
 <table>
@@ -196,7 +191,7 @@
 <p>Windows XP is not a supported platform, but all newer Windows should be able to build the JDK.</p>
 <p>On Windows, it is important that you pay attention to the instructions in the <a href="#special-considerations">Special Considerations</a>.</p>
 <p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layer is Cygwin. (Msys is no longer supported due to a too old bash; msys2 and the new Windows Subsystem for Linux (WSL) would likely be possible to support in a future version but that would require effort to implement.)</p>
-<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/hg/jdk9/Makefile</code> rather than <code>C:\hg\jdk9\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
+<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/hg/jdk9/Makefile</code> rather than <code>C:\hg\jdk9\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
 <h4 id="cygwin">Cygwin</h4>
 <p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment is thus required for building the JDK on Windows. If you have a 64-bit OS, we strongly recommend using the 64-bit version of Cygwin.</p>
 <p><strong>Note:</strong> Cygwin has a model of continuously updating all packages without any easy way to install or revert to a specific version of a package. This means that whenever you add or update a package in Cygwin, you might (inadvertently) update tools that are used by the JDK build process, and that can cause unexpected build problems.</p>
@@ -210,13 +205,13 @@
 </ul>
 <p>Often, you can install these packages using the following command line:</p>
 <pre><code>&lt;path to Cygwin setup&gt;/setup-x86_64 -q -P autoconf -P make -P unzip -P zip</code></pre>
-<p>Unfortunately, Cygwin can be unreliable in certain circumstances. If you experience build tool crashes or strange issues when building on Windows, please check the Cygwin FAQ on the <a href="https://cygwin.com/faq/faq.html#faq.using.bloda">“BLODA” list</a> and the section on <a href="https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures">fork() failures</a>.</p>
+<p>Unfortunately, Cygwin can be unreliable in certain circumstances. If you experience build tool crashes or strange issues when building on Windows, please check the Cygwin FAQ on the <a href="https://cygwin.com/faq/faq.html#faq.using.bloda">&quot;BLODA&quot; list</a> and the section on <a href="https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures">fork() failures</a>.</p>
 <h3 id="solaris">Solaris</h3>
 <p>See <code>make/devkit/solaris11.1-package-list.txt</code> for a list of recommended packages to install when building on Solaris. The versions specified in this list is the versions used by the daily builds at Oracle, and is likely to work properly.</p>
 <p>Older versions of Solaris shipped a broken version of <code>objcopy</code>. At least version 2.21.1 is needed, which is provided by Solaris 11 Update 1. Objcopy is needed if you want to have external debug symbols. Please make sure you are using at least version 2.21.1 of objcopy, or that you disable external debug symbols.</p>
 <h3 id="macos">macOS</h3>
 <p>Apple is using a quite aggressive scheme of pushing OS updates, and coupling these updates with required updates of Xcode. Unfortunately, this makes it difficult for a project such as the JDK to keep pace with a continuously updated machine running macOS. See the section on <a href="#apple-xcode">Apple Xcode</a> on some strategies to deal with this.</p>
-<p>It is recommended that you use at least Mac OS X 10.9 (Mavericks). At the time of writing, the JDK has been successfully compiled on macOS versions up to 10.12.5 (Sierra), using XCode 8.3.2 and <code>--disable-warnings-as-errors</code>.</p>
+<p>It is recommended that you use at least Mac OS X 10.13 (High Sierra). At the time of writing, the JDK has been successfully compiled on macOS 10.12 (Sierra).</p>
 <p>The standard macOS environment contains the basic tooling needed to build, but for external libraries a package manager is recommended. The JDK uses <a href="https://brew.sh/">homebrew</a> in the examples, but feel free to use whatever manager you want (or none).</p>
 <h3 id="linux">Linux</h3>
 <p>It is often not much problem to build the JDK on Linux. The only general advice is to try to use the compilers, external libraries and header files as provided by your distribution.</p>
@@ -228,7 +223,7 @@
 <h3 id="aix">AIX</h3>
 <p>The regular builds by SAP is using AIX version 7.1, but AIX 5.3 is also supported. See the <a href="http://cr.openjdk.java.net/~simonis/ppc-aix-port">OpenJDK PowerPC Port Status Page</a> for details.</p>
 <h2 id="native-compiler-toolchain-requirements">Native Compiler (Toolchain) Requirements</h2>
-<p>Large portions of the JDK consists of native code, that needs to be compiled to be able to run on the target platform. In theory, toolchain and operating system should be independent factors, but in practice there’s more or less a one-to-one correlation between target operating system and toolchain.</p>
+<p>Large portions of the JDK consists of native code, that needs to be compiled to be able to run on the target platform. In theory, toolchain and operating system should be independent factors, but in practice there's more or less a one-to-one correlation between target operating system and toolchain.</p>
 <table>
 <thead>
 <tr class="header">
@@ -274,7 +269,7 @@
 </tr>
 <tr class="even">
 <td style="text-align: left;">macOS</td>
-<td style="text-align: left;">Apple Xcode 6.3 (using clang 6.1.0)</td>
+<td style="text-align: left;">Apple Xcode 9.4 (using clang 9.1.0)</td>
 </tr>
 <tr class="odd">
 <td style="text-align: left;">Solaris</td>
@@ -282,7 +277,7 @@
 </tr>
 <tr class="even">
 <td style="text-align: left;">Windows</td>
-<td style="text-align: left;">Microsoft Visual Studio 2013 update 4</td>
+<td style="text-align: left;">Microsoft Visual Studio 2017 update 15.5.5</td>
 </tr>
 </tbody>
 </table>
@@ -294,10 +289,10 @@
 <p>The minimum accepted version of clang is 3.2. Older versions will not be accepted by <code>configure</code>.</p>
 <p>To use clang instead of gcc on Linux, use <code>--with-toolchain-type=clang</code>.</p>
 <h3 id="apple-xcode">Apple Xcode</h3>
-<p>The oldest supported version of Xcode is 5.</p>
+<p>The oldest supported version of Xcode is 8.</p>
 <p>You will need the Xcode command lines developers tools to be able to build the JDK. (Actually, <em>only</em> the command lines tools are needed, not the IDE.) The simplest way to install these is to run:</p>
 <pre><code>xcode-select --install</code></pre>
-<p>It is advisable to keep an older version of Xcode for building the JDK when updating Xcode. This <a href="http://iosdevelopertips.com/xcode/install-multiple-versions-of-xcode.html">blog page</a> has good suggestions on managing multiple Xcode versions. To use a specific version of Xcode, use <code>xcode-select -s</code> before running <code>configure</code>, or use <code>--with-toolchain-path</code> to point to the version of Xcode to use, e.g. <code>configure --with-toolchain-path=/Applications/Xcode5.app/Contents/Developer/usr/bin</code></p>
+<p>It is advisable to keep an older version of Xcode for building the JDK when updating Xcode. This <a href="http://iosdevelopertips.com/xcode/install-multiple-versions-of-xcode.html">blog page</a> has good suggestions on managing multiple Xcode versions. To use a specific version of Xcode, use <code>xcode-select -s</code> before running <code>configure</code>, or use <code>--with-toolchain-path</code> to point to the version of Xcode to use, e.g. <code>configure --with-toolchain-path=/Applications/Xcode8.app/Contents/Developer/usr/bin</code></p>
 <p>If you have recently (inadvertently) updated your OS and/or Xcode version, and the JDK can no longer be built, please see the section on <a href="#problems-with-the-build-environment">Problems with the Build Environment</a>, and <a href="#getting-help">Getting Help</a> to find out if there are any recent, non-merged patches available for this update.</p>
 <h3 id="oracle-solaris-studio">Oracle Solaris Studio</h3>
 <p>The minimum accepted version of the Solaris Studio compilers is 5.13 (corresponding to Solaris Studio 12.4). Older versions will not be accepted by configure.</p>
@@ -358,15 +353,15 @@
 $ CC -V
 CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
 <h3 id="microsoft-visual-studio">Microsoft Visual Studio</h3>
-<p>The minimum accepted version of Visual Studio is 2010. Older versions will not be accepted by <code>configure</code>. The maximum accepted version of Visual Studio is 2013.</p>
-<p>If you have multiple versions of Visual Studio installed, <code>configure</code> will by default pick the latest. You can request a specific version to be used by setting <code>--with-toolchain-version</code>, e.g. <code>--with-toolchain-version=2010</code>.</p>
+<p>The minimum accepted version of Visual Studio is 2010. Older versions will not be accepted by <code>configure</code>. The maximum accepted version of Visual Studio is 2017. Versions older than 2017 are unlikely to continue working for long.</p>
+<p>If you have multiple versions of Visual Studio installed, <code>configure</code> will by default pick the latest. You can request a specific version to be used by setting <code>--with-toolchain-version</code>, e.g. <code>--with-toolchain-version=2015</code>.</p>
 <p>If you get <code>LINK: fatal error LNK1123: failure during conversion to COFF: file invalid</code> when building using Visual Studio 2010, you have encountered <a href="http://support.microsoft.com/kb/2757355">KB2757355</a>, a bug triggered by a specific installation order. However, the solution suggested by the KB article does not always resolve the problem. See <a href="https://stackoverflow.com/questions/10888391">this stackoverflow discussion</a> for other suggestions.</p>
 <h3 id="ibm-xl-cc">IBM XL C/C++</h3>
 <p>The regular builds by SAP is using version 12.1, described as <code>IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72) Version: 12.01.0000.0017</code>.</p>
 <p>See the <a href="http://cr.openjdk.java.net/~simonis/ppc-aix-port">OpenJDK PowerPC Port Status Page</a> for details.</p>
 <h2 id="boot-jdk-requirements">Boot JDK Requirements</h2>
-<p>Paradoxically, building the JDK requires a pre-existing JDK. This is called the “boot JDK”. The boot JDK does not, however, have to be a JDK built directly from the source code available in the OpenJDK Community. If you are porting the JDK to a new platform, chances are that there already exists another JDK for that platform that is usable as boot JDK.</p>
-<p>The rule of thumb is that the boot JDK for building JDK major version <em>N</em> should be a JDK of major version <em>N-1</em>, so for building JDK 9 a JDK 8 would be suitable as boot JDK. However, the JDK should be able to “build itself”, so an up-to-date build of the current JDK source is an acceptable alternative. If you are following the <em>N-1</em> rule, make sure you’ve got the latest update version, since JDK 8 GA might not be able to build JDK 9 on all platforms.</p>
+<p>Paradoxically, building the JDK requires a pre-existing JDK. This is called the &quot;boot JDK&quot;. The boot JDK does not, however, have to be a JDK built directly from the source code available in the OpenJDK Community. If you are porting the JDK to a new platform, chances are that there already exists another JDK for that platform that is usable as boot JDK.</p>
+<p>The rule of thumb is that the boot JDK for building JDK major version <em>N</em> should be a JDK of major version <em>N-1</em>, so for building JDK 9 a JDK 8 would be suitable as boot JDK. However, the JDK should be able to &quot;build itself&quot;, so an up-to-date build of the current JDK source is an acceptable alternative. If you are following the <em>N-1</em> rule, make sure you've got the latest update version, since JDK 8 GA might not be able to build JDK 9 on all platforms.</p>
 <p>Early in the release cycle, version <em>N-1</em> may not yet have been released. In that case, the preferred boot JDK will be version <em>N-2</em> until version <em>N-1</em> is available.</p>
 <p>If the boot JDK is not automatically detected, or the wrong JDK is picked, use <code>--with-boot-jdk</code> to point to the JDK to use.</p>
 <h3 id="getting-jdk-binaries">Getting JDK binaries</h3>
@@ -428,14 +423,14 @@
 <h3 id="gnu-make">GNU Make</h3>
 <p>The JDK requires <a href="http://www.gnu.org/software/make">GNU Make</a>. No other flavors of make are supported.</p>
 <p>At least version 3.81 of GNU Make must be used. For distributions supporting GNU Make 4.0 or above, we strongly recommend it. GNU Make 4.0 contains useful functionality to handle parallel building (supported by <code>--with-output-sync</code>) and speed and stability improvements.</p>
-<p>Note that <code>configure</code> locates and verifies a properly functioning version of <code>make</code> and stores the path to this <code>make</code> binary in the configuration. If you start a build using <code>make</code> on the command line, you will be using the version of make found first in your <code>PATH</code>, and not necessarily the one stored in the configuration. This initial make will be used as “bootstrap make”, and in a second stage, the make located by <code>configure</code> will be called. Normally, this will present no issues, but if you have a very old <code>make</code>, or a non-GNU Make <code>make</code> in your path, this might cause issues.</p>
+<p>Note that <code>configure</code> locates and verifies a properly functioning version of <code>make</code> and stores the path to this <code>make</code> binary in the configuration. If you start a build using <code>make</code> on the command line, you will be using the version of make found first in your <code>PATH</code>, and not necessarily the one stored in the configuration. This initial make will be used as &quot;bootstrap make&quot;, and in a second stage, the make located by <code>configure</code> will be called. Normally, this will present no issues, but if you have a very old <code>make</code>, or a non-GNU Make <code>make</code> in your path, this might cause issues.</p>
 <p>If you want to override the default make found by <code>configure</code>, use the <code>MAKE</code> configure variable, e.g. <code>configure MAKE=/opt/gnu/make</code>.</p>
 <p>On Solaris, it is common to call the GNU version of make by using <code>gmake</code>.</p>
 <h3 id="gnu-bash">GNU Bash</h3>
 <p>The JDK requires <a href="http://www.gnu.org/software/bash">GNU Bash</a>. No other shells are supported.</p>
 <p>At least version 3.2 of GNU Bash must be used.</p>
 <h2 id="running-configure">Running Configure</h2>
-<p>To build the JDK, you need a “configuration”, which consists of a directory where to store the build output, coupled with information about the platform, the specific build machine, and choices that affect how the JDK is built.</p>
+<p>To build the JDK, you need a &quot;configuration&quot;, which consists of a directory where to store the build output, coupled with information about the platform, the specific build machine, and choices that affect how the JDK is built.</p>
 <p>The configuration is created by the <code>configure</code> script. The basic invocation of the <code>configure</code> script looks like this:</p>
 <pre><code>bash configure [options]</code></pre>
 <p>This will create an output directory containing the configuration and setup an area for the build result. This directory typically looks like <code>build/linux-x64-normal-server-release</code>, but the actual name depends on your specific configuration. (It can also be set directly, see <a href="#using-multiple-configurations">Using Multiple Configurations</a>). This directory is referred to as <code>$BUILD</code> in this documentation.</p>
@@ -497,13 +492,13 @@
 </ul>
 <h3 id="configure-control-variables">Configure Control Variables</h3>
 <p>It is possible to control certain aspects of <code>configure</code> by overriding the value of <code>configure</code> variables, either on the command line or in the environment.</p>
-<p>Normally, this is <strong>not recommended</strong>. If used improperly, it can lead to a broken configuration. Unless you’re well versed in the build system, this is hard to use properly. Therefore, <code>configure</code> will print a warning if this is detected.</p>
+<p>Normally, this is <strong>not recommended</strong>. If used improperly, it can lead to a broken configuration. Unless you're well versed in the build system, this is hard to use properly. Therefore, <code>configure</code> will print a warning if this is detected.</p>
 <p>However, there are a few <code>configure</code> variables, known as <em>control variables</em> that are supposed to be overriden on the command line. These are variables that describe the location of tools needed by the build, like <code>MAKE</code> or <code>GREP</code>. If any such variable is specified, <code>configure</code> will use that value instead of trying to autodetect the tool. For instance, <code>bash configure MAKE=/opt/gnumake4.0/bin/make</code>.</p>
-<p>If a configure argument exists, use that instead, e.g. use <code>--with-jtreg</code> instead of setting <code>JTREGEXE</code>.</p>
+<p>If a configure argument exists, use that instead, e.g. use <code>--with-jtreg</code> instead of setting <code>JTREGEXE</code>.</p>
 <p>Also note that, despite what autoconf claims, setting <code>CFLAGS</code> will not accomplish anything. Instead use <code>--with-extra-cflags</code> (and similar for <code>cxxflags</code> and <code>ldflags</code>).</p>
 <h2 id="running-make">Running Make</h2>
 <p>When you have a proper configuration, all you need to do to build the JDK is to run <code>make</code>. (But see the warning at <a href="#gnu-make">GNU Make</a> about running the correct version of make.)</p>
-<p>When running <code>make</code> without any arguments, the default target is used, which is the same as running <code>make default</code> or <code>make jdk</code>. This will build a minimal (or roughly minimal) set of compiled output (known as an “exploded image”) needed for a developer to actually execute the newly built JDK. The idea is that in an incremental development fashion, when doing a normal make, you should only spend time recompiling what’s changed (making it purely incremental) and only do the work that’s needed to actually run and test your code.</p>
+<p>When running <code>make</code> without any arguments, the default target is used, which is the same as running <code>make default</code> or <code>make jdk</code>. This will build a minimal (or roughly minimal) set of compiled output (known as an &quot;exploded image&quot;) needed for a developer to actually execute the newly built JDK. The idea is that in an incremental development fashion, when doing a normal make, you should only spend time recompiling what's changed (making it purely incremental) and only do the work that's needed to actually run and test your code.</p>
 <p>The output of the exploded image resides in <code>$BUILD/jdk</code>. You can test the newly built JDK like this: <code>$BUILD/jdk/bin/java -version</code>.</p>
 <h3 id="common-make-targets">Common Make Targets</h3>
 <p>Apart from the default target, here are some common make targets:</p>
@@ -534,8 +529,8 @@
 </ul>
 <h3 id="make-control-variables">Make Control Variables</h3>
 <p>It is possible to control <code>make</code> behavior by overriding the value of <code>make</code> variables, either on the command line or in the environment.</p>
-<p>Normally, this is <strong>not recommended</strong>. If used improperly, it can lead to a broken build. Unless you’re well versed in the build system, this is hard to use properly. Therefore, <code>make</code> will print a warning if this is detected.</p>
-<p>However, there are a few <code>make</code> variables, known as <em>control variables</em> that are supposed to be overriden on the command line. These make up the “make time” configuration, as opposed to the “configure time” configuration.</p>
+<p>Normally, this is <strong>not recommended</strong>. If used improperly, it can lead to a broken build. Unless you're well versed in the build system, this is hard to use properly. Therefore, <code>make</code> will print a warning if this is detected.</p>
+<p>However, there are a few <code>make</code> variables, known as <em>control variables</em> that are supposed to be overriden on the command line. These make up the &quot;make time&quot; configuration, as opposed to the &quot;configure time&quot; configuration.</p>
 <h4 id="general-make-control-variables">General Make Control Variables</h4>
 <ul>
 <li><code>JOBS</code> - Specify the number of jobs to build with. See <a href="#build-performance">Build Performance</a>.</li>
@@ -559,7 +554,7 @@
 <li><code>JDK_FILTER</code></li>
 </ul>
 <h2 id="running-tests">Running Tests</h2>
-<p>Most of the JDK tests are using the <a href="http://openjdk.java.net/jtreg">JTReg</a> test framework. Make sure that your configuration knows where to find your installation of JTReg. If this is not picked up automatically, use the <code>--with-jtreg=&lt;path to jtreg home&gt;</code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc.</p>
+<p>Most of the JDK tests are using the <a href="http://openjdk.java.net/jtreg">JTReg</a> test framework. Make sure that your configuration knows where to find your installation of JTReg. If this is not picked up automatically, use the <code>--with-jtreg=&lt;path to jtreg home&gt;</code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc.</p>
 <p>The <a href="https://wiki.openjdk.java.net/display/Adoption">Adoption Group</a> provides recent builds of jtreg <a href="https://adopt-openjdk.ci.cloudbees.com/job/jtreg/lastSuccessfulBuild/artifact">here</a>. Download the latest <code>.tar.gz</code> file, unpack it, and point <code>--with-jtreg</code> to the <code>jtreg</code> directory that you just unpacked.</p>
 <p>To execute the most basic tests (tier 1), use:</p>
 <pre><code>make run-test-tier1</code></pre>
@@ -569,13 +564,13 @@
 <p>The typical reason for cross-compiling is that the build is performed on a more powerful desktop computer, but the resulting binaries will be able to run on a different, typically low-performing system. Most of the complications that arise when building for embedded is due to this separation of <em>build</em> and <em>target</em> systems.</p>
 <p>This requires a more complex setup and build procedure. This section assumes you are familiar with cross-compiling in general, and will only deal with the particularities of cross-compiling the JDK. If you are new to cross-compiling, please see the <a href="https://en.wikipedia.org/wiki/Cross_compiler#External_links">external links at Wikipedia</a> for a good start on reading materials.</p>
 <p>Cross-compiling the JDK requires you to be able to build both for the build platform and for the target platform. The reason for the former is that we need to build and execute tools during the build process, both native tools and Java tools.</p>
-<p>If all you want to do is to compile a 32-bit version, for the same OS, on a 64-bit machine, consider using <code>--with-target-bits=32</code> instead of doing a full-blown cross-compilation. (While this surely is possible, it’s a lot more work and will take much longer to build.)</p>
+<p>If all you want to do is to compile a 32-bit version, for the same OS, on a 64-bit machine, consider using <code>--with-target-bits=32</code> instead of doing a full-blown cross-compilation. (While this surely is possible, it's a lot more work and will take much longer to build.)</p>
 <h3 id="boot-jdk-and-build-jdk">Boot JDK and Build JDK</h3>
 <p>When cross-compiling, make sure you use a boot JDK that runs on the <em>build</em> system, and not on the <em>target</em> system.</p>
-<p>To be able to build, we need a “Build JDK”, which is a JDK built from the current sources (that is, the same as the end result of the entire build process), but able to run on the <em>build</em> system, and not the <em>target</em> system. (In contrast, the Boot JDK should be from an older release, e.g. JDK 8 when building JDK 9.)</p>
+<p>To be able to build, we need a &quot;Build JDK&quot;, which is a JDK built from the current sources (that is, the same as the end result of the entire build process), but able to run on the <em>build</em> system, and not the <em>target</em> system. (In contrast, the Boot JDK should be from an older release, e.g. JDK 8 when building JDK 9.)</p>
 <p>The build process will create a minimal Build JDK for you, as part of building. To speed up the build, you can use <code>--with-build-jdk</code> to <code>configure</code> to point to a pre-built Build JDK. Please note that the build result is unpredictable, and can possibly break in subtle ways, if the Build JDK does not <strong>exactly</strong> match the current sources.</p>
 <h3 id="specifying-the-target-platform">Specifying the Target Platform</h3>
-<p>You <em>must</em> specify the target platform when cross-compiling. Doing so will also automatically turn the build into a cross-compiling mode. The simplest way to do this is to use the <code>--openjdk-target</code> argument, e.g. <code>--openjdk-target=arm-linux-gnueabihf</code>. or <code>--openjdk-target=aarch64-oe-linux</code>. This will automatically set the <code>--build</code>, <code>--host</code> and <code>--target</code> options for autoconf, which can otherwise be confusing. (In autoconf terminology, the “target” is known as “host”, and “target” is used for building a Canadian cross-compiler.)</p>
+<p>You <em>must</em> specify the target platform when cross-compiling. Doing so will also automatically turn the build into a cross-compiling mode. The simplest way to do this is to use the <code>--openjdk-target</code> argument, e.g. <code>--openjdk-target=arm-linux-gnueabihf</code>. or <code>--openjdk-target=aarch64-oe-linux</code>. This will automatically set the <code>--build</code>, <code>--host</code> and <code>--target</code> options for autoconf, which can otherwise be confusing. (In autoconf terminology, the &quot;target&quot; is known as &quot;host&quot;, and &quot;target&quot; is used for building a Canadian cross-compiler.)</p>
 <h3 id="toolchain-considerations">Toolchain Considerations</h3>
 <p>You will need two copies of your toolchain, one which generates output that can run on the target system (the normal, or <em>target</em>, toolchain), and one that generates output that can run on the build system (the <em>build</em> toolchain). Note that cross-compiling is only supported for gcc at the time being. The gcc standard is to prefix cross-compiling toolchains with the target denominator. If you follow this standard, <code>configure</code> is likely to pick up the toolchain correctly.</p>
 <p>The <em>build</em> toolchain will be autodetected just the same way the normal <em>build</em>/<em>target</em> toolchain will be autodetected when not cross-compiling. If this is not what you want, or if the autodetection fails, you can specify a devkit containing the <em>build</em> toolchain using <code>--with-build-devkit</code> to <code>configure</code>, or by giving <code>BUILD_CC</code> and <code>BUILD_CXX</code> arguments.</p>
@@ -587,23 +582,21 @@
 </ul>
 <h3 id="native-libraries">Native Libraries</h3>
 <p>You will need copies of external native libraries for the <em>target</em> system, present on the <em>build</em> machine while building.</p>
-<p>Take care not to replace the <em>build</em> system’s version of these libraries by mistake, since that can render the <em>build</em> machine unusable.</p>
+<p>Take care not to replace the <em>build</em> system's version of these libraries by mistake, since that can render the <em>build</em> machine unusable.</p>
 <p>Make sure that the libraries you point to (ALSA, X11, etc) are for the <em>target</em>, not the <em>build</em>, platform.</p>
 <h4 id="alsa-1">ALSA</h4>
-<p>You will need alsa libraries suitable for your <em>target</em> system. For most cases, using Debian’s pre-built libraries work fine.</p>
+<p>You will need alsa libraries suitable for your <em>target</em> system. For most cases, using Debian's pre-built libraries work fine.</p>
 <p>Note that alsa is needed even if you only want to build a headless JDK.</p>
 <ul>
 <li><p>Go to <a href="https://www.debian.org/distrib/packages">Debian Package Search</a> and search for the <code>libasound2</code> and <code>libasound2-dev</code> packages for your <em>target</em> system. Download them to /tmp.</p></li>
-<li>Install the libraries into the cross-compilation toolchain. For instance:</li>
-</ul>
+<li><p>Install the libraries into the cross-compilation toolchain. For instance:</p>
 <pre><code>cd /tools/gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux/arm-linux-gnueabihf/libc
 dpkg-deb -x /tmp/libasound2_1.0.25-4_armhf.deb .
-dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre>
-<ul>
-<li>If alsa is not properly detected by <code>configure</code>, you can point it out by <code>--with-alsa</code>.</li>
+dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre></li>
+<li><p>If alsa is not properly detected by <code>configure</code>, you can point it out by <code>--with-alsa</code>.</p></li>
 </ul>
 <h4 id="x11-1">X11</h4>
-<p>You will need X11 libraries suitable for your <em>target</em> system. For most cases, using Debian’s pre-built libraries work fine.</p>
+<p>You will need X11 libraries suitable for your <em>target</em> system. For most cases, using Debian's pre-built libraries work fine.</p>
 <p>Note that X11 is needed even if you only want to build a headless JDK.</p>
 <ul>
 <li>Go to <a href="https://www.debian.org/distrib/packages">Debian Package Search</a>, search for the following packages for your <em>target</em> system, and download them to /tmp/target-x11:
@@ -643,7 +636,7 @@
 </ul>
 <h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
 <p>A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using <code>--with-abi-profile</code>: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.</p>
-<p>The JDK contains two different ports for the aarch64 platform, one is the original aarch64 port from the <a href="http://openjdk.java.net/projects/aarch64-port">AArch64 Port Project</a> and one is a 64-bit version of the Oracle contributed ARM port. When targeting aarch64, by the default the original aarch64 port is used. To select the Oracle ARM 64 port, use <code>--with-cpu-port=arm64</code>. Also set the corresponding value (<code>aarch64</code> or <code>arm64</code>) to –with-abi-profile, to ensure a consistent build.</p>
+<p>The JDK contains two different ports for the aarch64 platform, one is the original aarch64 port from the <a href="http://openjdk.java.net/projects/aarch64-port">AArch64 Port Project</a> and one is a 64-bit version of the Oracle contributed ARM port. When targeting aarch64, by the default the original aarch64 port is used. To select the Oracle ARM 64 port, use <code>--with-cpu-port=arm64</code>. Also set the corresponding value (<code>aarch64</code> or <code>arm64</code>) to --with-abi-profile, to ensure a consistent build.</p>
 <h3 id="verifying-the-build">Verifying the Build</h3>
 <p>The build will end up in a directory named like <code>build/linux-arm-normal-server-release</code>.</p>
 <p>Inside this build output directory, the <code>images/jdk</code> will contain the newly built JDK, for your <em>target</em> system.</p>
@@ -651,21 +644,21 @@
 <h2 id="build-performance">Build Performance</h2>
 <p>Building the JDK requires a lot of horsepower. Some of the build tools can be adjusted to utilize more or less of resources such as parallel threads and memory. The <code>configure</code> script analyzes your system and selects reasonable values for such options based on your hardware. If you encounter resource problems, such as out of memory conditions, you can modify the detected values with:</p>
 <ul>
-<li><p><code>--with-num-cores</code> – number of cores in the build system, e.g. <code>--with-num-cores=8</code>.</p></li>
-<li><p><code>--with-memory-size</code> – memory (in MB) available in the build system, e.g. <code>--with-memory-size=1024</code></p></li>
+<li><p><code>--with-num-cores</code> -- number of cores in the build system, e.g. <code>--with-num-cores=8</code>.</p></li>
+<li><p><code>--with-memory-size</code> -- memory (in MB) available in the build system, e.g. <code>--with-memory-size=1024</code></p></li>
 </ul>
 <p>You can also specify directly the number of build jobs to use with <code>--with-jobs=N</code> to <code>configure</code>, or <code>JOBS=N</code> to <code>make</code>. Do not use the <code>-j</code> flag to <code>make</code>. In most cases it will be ignored by the makefiles, but it can cause problems for some make targets.</p>
 <p>It might also be necessary to specify the JVM arguments passed to the Boot JDK, using e.g. <code>--with-boot-jdk-jvmargs=&quot;-Xmx8G&quot;</code>. Doing so will override the default JVM arguments passed to the Boot JDK.</p>
 <p>At the end of a successful execution of <code>configure</code>, you will get a performance summary, indicating how well the build will perform. Here you will also get performance hints. If you want to build fast, pay attention to those!</p>
 <p>If you want to tweak build performance, run with <code>make LOG=info</code> to get a build time summary at the end of the build process.</p>
 <h3 id="disk-speed">Disk Speed</h3>
-<p>If you are using network shares, e.g. via NFS, for your source code, make sure the build directory is situated on local disk (e.g. by <code>ln -s /localdisk/jdk-build $JDK-SHARE/build</code>). The performance penalty is extremely high for building on a network share; close to unusable.</p>
+<p>If you are using network shares, e.g. via NFS, for your source code, make sure the build directory is situated on local disk (e.g. by <code>ln -s /localdisk/jdk-build $JDK-SHARE/build</code>). The performance penalty is extremely high for building on a network share; close to unusable.</p>
 <p>Also, make sure that your build tools (including Boot JDK and toolchain) is located on a local disk and not a network share.</p>
 <p>As has been stressed elsewhere, do use SSD for source code and build directory, as well as (if possible) the build tools.</p>
 <h3 id="virus-checking">Virus Checking</h3>
 <p>The use of virus checking software, especially on Windows, can <em>significantly</em> slow down building of the JDK. If possible, turn off such software, or exclude the directory containing the JDK source code from on-the-fly checking.</p>
 <h3 id="ccache">Ccache</h3>
-<p>The JDK build supports building with ccache when using gcc or clang. Using ccache can radically speed up compilation of native code if you often rebuild the same sources. Your milage may vary however, so we recommend evaluating it for yourself. To enable it, make sure it’s on the path and configure with <code>--enable-ccache</code>.</p>
+<p>The JDK build supports building with ccache when using gcc or clang. Using ccache can radically speed up compilation of native code if you often rebuild the same sources. Your milage may vary however, so we recommend evaluating it for yourself. To enable it, make sure it's on the path and configure with <code>--enable-ccache</code>.</p>
 <h3 id="precompiled-headers">Precompiled Headers</h3>
 <p>By default, the Hotspot build uses preccompiled headers (PCH) on the toolchains were it is properly supported (clang, gcc, and Visual Studio). Normally, this speeds up the build process, but in some circumstances, it can actually slow things down.</p>
 <p>You can experiment by disabling precompiled headers using <code>--disable-precompiled-headers</code>.</p>
@@ -700,11 +693,11 @@
 
 Hint: Try searching the build log for the name of the first failed target.
 Hint: If caused by a warning, try configure --disable-warnings-as-errors.</code></pre>
-<p>Let’s break it down! First, the selected configuration, and the top-level target you entered on the command line that caused the failure is printed.</p>
+<p>Let's break it down! First, the selected configuration, and the top-level target you entered on the command line that caused the failure is printed.</p>
 <p>Then, between the <code>Output from failing command(s) repeated here</code> and <code>End of repeated output</code> the first lines of output (stdout and stderr) from the actual failing command is repeated. In most cases, this is the error message that caused the build to fail. If multiple commands were failing (this can happen in a parallel build), output from all failed commands will be printed here.</p>
 <p>The path to the <code>failure-logs</code> directory is printed. In this file you will find a <code>&lt;target&gt;.log</code> file that contains the output from this command in its entirety, and also a <code>&lt;target&gt;.cmd</code>, which contain the complete command line used for running this command. You can re-run the failing command by executing <code>. &lt;path to failure-logs&gt;/&lt;target&gt;.cmd</code> in your shell.</p>
 <p>Another way to trace the failure is to follow the chain of make targets, from top-level targets to individual file targets. Between <code>Make failed targets repeated here</code> and <code>End of repeated output</code> the output from make showing this chain is repeated. The first failed recipe will typically contain the full path to the file in question that failed to compile. Following lines will show a trace of make targets why we ended up trying to compile that file.</p>
-<p>Finally, some hints are given on how to locate the error in the complete log. In this example, we would try searching the log file for “<code>psMemoryPool.o</code>”. Another way to quickly locate make errors in the log is to search for “<code>] Error</code>” or “<code>***</code>”.</p>
+<p>Finally, some hints are given on how to locate the error in the complete log. In this example, we would try searching the log file for &quot;<code>psMemoryPool.o</code>&quot;. Another way to quickly locate make errors in the log is to search for &quot;<code>] Error</code>&quot; or &quot;<code>***</code>&quot;.</p>
 <p>Note that the build failure summary will only help you if the issue was a compilation failure or similar. If the problem is more esoteric, or is due to errors in the build machinery, you will likely get empty output logs, and <code>No indication of failed target found</code> instead of the make target chain.</p>
 <h4 id="checking-the-build-log-file">Checking the Build Log File</h4>
 <p>The output (stdout and stderr) from the latest build is always stored in <code>$BUILD/build.log</code>. The previous build log is stored as <code>build.log.old</code>. This means that it is not necessary to redirect the build output yourself if you want to process it.</p>
@@ -725,13 +718,13 @@
 <li><p>Clean build results</p>
 <p>The simplest way to fix incremental rebuild issues is to run <code>make clean</code>. This will remove all build results, but not the configuration or any build system support artifacts. In most cases, this will solve build errors resulting from incremental build mismatches.</p></li>
 <li><p>Completely clean the build directory.</p>
-<p>If this does not work, the next step is to run <code>make dist-clean</code>, or removing the build output directory (<code>$BUILD</code>). This will clean all generated output, including your configuration. You will need to re-run <code>configure</code> after this step. A good idea is to run <code>make print-configuration</code> before running <code>make dist-clean</code>, as this will print your current <code>configure</code> command line. Here’s a way to do this:</p>
+<p>If this does not work, the next step is to run <code>make dist-clean</code>, or removing the build output directory (<code>$BUILD</code>). This will clean all generated output, including your configuration. You will need to re-run <code>configure</code> after this step. A good idea is to run <code>make print-configuration</code> before running <code>make dist-clean</code>, as this will print your current <code>configure</code> command line. Here's a way to do this:</p>
 <pre><code>make print-configuration &gt; current-configuration
 make dist-clean
 bash configure $(cat current-configuration)
 make</code></pre></li>
 <li><p>Re-clone the Mercurial forest</p>
-<p>Sometimes the Mercurial repositories themselves gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the “sledgehammer approach”: delete the entire forest, and re-clone it. If you have local changes, save them first to a different location using <code>hg export</code>.</p></li>
+<p>Sometimes the Mercurial repositories themselves gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the &quot;sledgehammer approach&quot;: delete the entire forest, and re-clone it. If you have local changes, save them first to a different location using <code>hg export</code>.</p></li>
 </ol>
 <h3 id="specific-build-issues">Specific Build Issues</h3>
 <h4 id="clock-skew">Clock Skew</h4>
@@ -755,7 +748,7 @@
 <h2 id="hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</h2>
 <h3 id="setting-up-a-forest-for-pushing-changes-defpath">Setting Up a Forest for Pushing Changes (defpath)</h3>
 <p>To help you prepare a proper push path for a Mercurial repository, there exists a useful tool known as <a href="http://openjdk.java.net/projects/code-tools/defpath">defpath</a>. It will help you setup a proper push path for pushing changes to the JDK.</p>
-<p>Install the extension by cloning <code>http://hg.openjdk.java.net/code-tools/defpath</code> and updating your <code>.hgrc</code> file. Here’s one way to do this:</p>
+<p>Install the extension by cloning <code>http://hg.openjdk.java.net/code-tools/defpath</code> and updating your <code>.hgrc</code> file. Here's one way to do this:</p>
 <pre><code>cd ~
 mkdir hg-ext
 cd hg-ext
@@ -789,7 +782,7 @@
 <h3 id="handling-reconfigurations">Handling Reconfigurations</h3>
 <p>If you update the forest and part of the configure script has changed, the build system will force you to re-run <code>configure</code>.</p>
 <p>Most of the time, you will be fine by running <code>configure</code> again with the same arguments as the last time, which can easily be performed by <code>make reconfigure</code>. To simplify this, you can use the <code>CONF_CHECK</code> make control variable, either as <code>make CONF_CHECK=auto</code>, or by setting an environment variable. For instance, if you add <code>export CONF_CHECK=auto</code> to your <code>.bashrc</code> file, <code>make</code> will always run <code>reconfigure</code> automatically whenever the configure script has changed.</p>
-<p>You can also use <code>CONF_CHECK=ignore</code> to skip the check for a needed configure update. This might speed up the build, but comes at the risk of an incorrect build result. This is only recommended if you know what you’re doing.</p>
+<p>You can also use <code>CONF_CHECK=ignore</code> to skip the check for a needed configure update. This might speed up the build, but comes at the risk of an incorrect build result. This is only recommended if you know what you're doing.</p>
 <p>From time to time, you will also need to modify the command line to <code>configure</code> due to changes. Use <code>make print-configure</code> to show the command line used for your current configuration.</p>
 <h3 id="using-fine-grained-make-targets">Using Fine-Grained Make Targets</h3>
 <p>The default behavior for make is to create consistent and correct output, at the expense of build speed, if necessary.</p>
@@ -847,9 +840,9 @@
 <p>This is what they are used for:</p>
 <ul>
 <li><p><code>images</code>: This is the directory were the output of the <code>*-image</code> make targets end up. For instance, <code>make jdk-image</code> ends up in <code>images/jdk</code>.</p></li>
-<li><p><code>jdk</code>: This is the “exploded image”. After <code>make jdk</code>, you will be able to launch the newly built JDK by running <code>$BUILD/jdk/bin/java</code>.</p></li>
+<li><p><code>jdk</code>: This is the &quot;exploded image&quot;. After <code>make jdk</code>, you will be able to launch the newly built JDK by running <code>$BUILD/jdk/bin/java</code>.</p></li>
 <li><p><code>test-results</code>: This directory contains the results from running tests.</p></li>
-<li><p><code>support</code>: This is an area for intermediate files needed during the build, e.g. generated source code, object files and class files. Some noteworthy directories in <code>support</code> is <code>gensrc</code>, which contains the generated source code, and the <code>modules_*</code> directories, which contains the files in a per-module hierarchy that will later be collapsed into the <code>jdk</code> directory of the exploded image.</p></li>
+<li><p><code>support</code>: This is an area for intermediate files needed during the build, e.g. generated source code, object files and class files. Some noteworthy directories in <code>support</code> is <code>gensrc</code>, which contains the generated source code, and the <code>modules_*</code> directories, which contains the files in a per-module hierarchy that will later be collapsed into the <code>jdk</code> directory of the exploded image.</p></li>
 <li><p><code>buildtools</code>: This is an area for tools compiled for the build platform that are used during the rest of the build.</p></li>
 <li><p><code>hotspot</code>: This is an area for intermediate files needed when building hotspot.</p></li>
 <li><p><code>configure-support</code>, <code>make-support</code> and <code>test-support</code>: These directories contain files that are needed by the build system for <code>configure</code>, <code>make</code> and for running tests.</p></li>
@@ -884,7 +877,7 @@
 ))</code></pre>
 <p>By encapsulating and expressing the high-level knowledge of <em>what</em> should be done, rather than <em>how</em> it should be done (as is normal in Makefiles), we can build a much more powerful and flexible build system.</p>
 <p>Correct dependency tracking is paramount. Sloppy dependency tracking will lead to improper parallelization, or worse, race conditions.</p>
-<p>To test for/debug race conditions, try running <code>make JOBS=1</code> and <code>make JOBS=100</code> and see if it makes any difference. (It shouldn’t).</p>
+<p>To test for/debug race conditions, try running <code>make JOBS=1</code> and <code>make JOBS=100</code> and see if it makes any difference. (It shouldn't).</p>
 <p>To compare the output of two different builds and see if, and how, they differ, run <code>$BUILD1/compare.sh -o $BUILD2</code>, where <code>$BUILD1</code> and <code>$BUILD2</code> are the two builds you want to compare.</p>
 <p>To automatically build two consecutive versions and compare them, use <code>COMPARE_BUILD</code>. The value of <code>COMPARE_BUILD</code> is a set of variable=value assignments, like this:</p>
 <pre><code>make COMPARE_BUILD=CONF=--enable-new-hotspot-feature:MAKE=hotspot</code></pre>
@@ -892,9 +885,9 @@
 <p>To analyze build performance, run with <code>LOG=trace</code> and check <code>$BUILD/build-trace-time.log</code>. Use <code>JOBS=1</code> to avoid parallelism.</p>
 <p>Please check that you adhere to the <a href="http://openjdk.java.net/groups/build/doc/code-conventions.html">Code Conventions for the Build System</a> before submitting patches.</p>
 <h2 id="contributing-to-the-jdk">Contributing to the JDK</h2>
-<p>So, now you’ve built your JDK, and made your first patch, and want to contribute it back to the OpenJDK Community.</p>
+<p>So, now you've built your JDK, and made your first patch, and want to contribute it back to the OpenJDK Community.</p>
 <p>First of all: Thank you! We gladly welcome your contribution. However, please bear in mind that the JDK is a massive project, and we must ask you to follow our rules and guidelines to be able to accept your contribution.</p>
-<p>The official place to start is the <a href="http://openjdk.java.net/contribute/">‘How to contribute’ page</a>. There is also an official (but somewhat outdated and skimpy on details) <a href="http://openjdk.java.net/guide/">Developer’s Guide</a>.</p>
-<p>If this seems overwhelming to you, the Adoption Group is there to help you! A good place to start is their <a href="https://wiki.openjdk.java.net/display/Adoption/New+Contributor">‘New Contributor’ page</a>, or start reading the comprehensive <a href="https://adoptopenjdk.gitbooks.io/adoptopenjdk-getting-started-kit/en/">Getting Started Kit</a>. The Adoption Group will also happily answer any questions you have about contributing. Contact them by <a href="http://mail.openjdk.java.net/mailman/listinfo/adoption-discuss">mail</a> or <a href="http://openjdk.java.net/irc/">IRC</a>.</p>
+<p>The official place to start is the <a href="http://openjdk.java.net/contribute/">'How to contribute' page</a>. There is also an official (but somewhat outdated and skimpy on details) <a href="http://openjdk.java.net/guide/">Developer's Guide</a>.</p>
+<p>If this seems overwhelming to you, the Adoption Group is there to help you! A good place to start is their <a href="https://wiki.openjdk.java.net/display/Adoption/New+Contributor">'New Contributor' page</a>, or start reading the comprehensive <a href="https://adoptopenjdk.gitbooks.io/adoptopenjdk-getting-started-kit/en/">Getting Started Kit</a>. The Adoption Group will also happily answer any questions you have about contributing. Contact them by <a href="http://mail.openjdk.java.net/mailman/listinfo/adoption-discuss">mail</a> or <a href="http://openjdk.java.net/irc/">IRC</a>.</p>
 </body>
 </html>
--- a/doc/building.md	Tue Jul 24 10:07:26 2018 +0100
+++ b/doc/building.md	Fri Jul 27 12:16:01 2018 +0100
@@ -233,9 +233,8 @@
 machine running macOS. See the section on [Apple Xcode](#apple-xcode) on some
 strategies to deal with this.
 
-It is recommended that you use at least Mac OS X 10.9 (Mavericks). At the time
-of writing, the JDK has been successfully compiled on macOS versions up to
-10.12.5 (Sierra), using XCode 8.3.2 and `--disable-warnings-as-errors`.
+It is recommended that you use at least Mac OS X 10.13 (High Sierra). At the time
+of writing, the JDK has been successfully compiled on macOS 10.12 (Sierra).
 
 The standard macOS environment contains the basic tooling needed to build, but
 for external libraries a package manager is recommended. The JDK uses
@@ -292,9 +291,9 @@
  Operating system   Toolchain version
  ------------------ -------------------------------------------------------
  Linux              gcc 7.3.0
- macOS              Apple Xcode 6.3 (using clang 6.1.0)
+ macOS              Apple Xcode 9.4 (using clang 9.1.0)
  Solaris            Oracle Solaris Studio 12.4 (with compiler version 5.13)
- Windows            Microsoft Visual Studio 2013 update 4
+ Windows            Microsoft Visual Studio 2017 update 15.5.5
 
 ### gcc
 
@@ -315,7 +314,7 @@
 
 ### Apple Xcode
 
-The oldest supported version of Xcode is 5.
+The oldest supported version of Xcode is 8.
 
 You will need the Xcode command lines developers tools to be able to build
 the JDK. (Actually, *only* the command lines tools are needed, not the IDE.)
@@ -330,7 +329,7 @@
 good suggestions on managing multiple Xcode versions. To use a specific version
 of Xcode, use `xcode-select -s` before running `configure`, or use
 `--with-toolchain-path` to point to the version of Xcode to use, e.g.
-`configure --with-toolchain-path=/Applications/Xcode5.app/Contents/Developer/usr/bin`
+`configure --with-toolchain-path=/Applications/Xcode8.app/Contents/Developer/usr/bin`
 
 If you have recently (inadvertently) updated your OS and/or Xcode version, and
 the JDK can no longer be built, please see the section on [Problems with the
@@ -372,11 +371,11 @@
 
 The minimum accepted version of Visual Studio is 2010. Older versions will not
 be accepted by `configure`. The maximum accepted version of Visual Studio is
-2013.
+2017. Versions older than 2017 are unlikely to continue working for long.
 
 If you have multiple versions of Visual Studio installed, `configure` will by
 default pick the latest. You can request a specific version to be used by
-setting `--with-toolchain-version`, e.g. `--with-toolchain-version=2010`.
+setting `--with-toolchain-version`, e.g. `--with-toolchain-version=2015`.
 
 If you get `LINK: fatal error LNK1123: failure during conversion to COFF: file
 invalid` when building using Visual Studio 2010, you have encountered
--- a/make/CompileJavaModules.gmk	Tue Jul 24 10:07:26 2018 +0100
+++ b/make/CompileJavaModules.gmk	Fri Jul 27 12:16:01 2018 +0100
@@ -621,9 +621,14 @@
 	$(install-file)
 
 CreateHkTargets = \
-    $(patsubst $(TOPDIR)/src/%, $(JDK_OUTPUTDIR)/modules/%, \
-      $(subst /share/classes,, \
-        $(subst _zh_TW,_zh_HK, $(filter %_zh_TW.properties, $1))))
+    $(call FilterExcludedTranslations, \
+       $(patsubst $(TOPDIR)/src/%, $(JDK_OUTPUTDIR)/modules/%, \
+         $(subst /share/classes,, \
+            $(subst _zh_TW,_zh_HK, $(filter %_zh_TW.properties, $1)) \
+         ) \
+       ), \
+       .properties \
+    )
 
 ifeq ($(MODULE), java.sql.rowset)
   TARGETS += $(call CreateHkTargets, $(java.sql.rowset_CLEAN_FILES))
--- a/make/Images.gmk	Tue Jul 24 10:07:26 2018 +0100
+++ b/make/Images.gmk	Fri Jul 27 12:16:01 2018 +0100
@@ -121,115 +121,117 @@
 #
 # Avoid evaluating this whole section on windows for speed and stability
 ifneq ($(OPENJDK_TARGET_OS), windows)
-  JRE_MAN_PAGES += \
-      java.1 \
-      jjs.1 \
-      keytool.1 \
-      orbd.1 \
-      pack200.1 \
-      rmid.1 \
-      rmiregistry.1 \
-      servertool.1 \
-      unpack200.1
+  ifeq ($(BUILD_MANPAGES), true)
+    JRE_MAN_PAGES += \
+        java.1 \
+        jjs.1 \
+        keytool.1 \
+        orbd.1 \
+        pack200.1 \
+        rmid.1 \
+        rmiregistry.1 \
+        servertool.1 \
+        unpack200.1
 
-  JDK_MAN_PAGES += \
-      $(JRE_MAN_PAGES) \
-      idlj.1 \
-      jar.1 \
-      jarsigner.1 \
-      javac.1 \
-      javadoc.1 \
-      javap.1 \
-      jconsole.1 \
-      jcmd.1 \
-      jdb.1 \
-      jdeps.1 \
-      jinfo.1 \
-      jmap.1 \
-      jps.1 \
-      jrunscript.1 \
-      jstack.1 \
-      jstat.1 \
-      jstatd.1 \
-      rmic.1 \
-      serialver.1
+    JDK_MAN_PAGES += \
+        $(JRE_MAN_PAGES) \
+        idlj.1 \
+        jar.1 \
+        jarsigner.1 \
+        javac.1 \
+        javadoc.1 \
+        javap.1 \
+        jconsole.1 \
+        jcmd.1 \
+        jdb.1 \
+        jdeps.1 \
+        jinfo.1 \
+        jmap.1 \
+        jps.1 \
+        jrunscript.1 \
+        jstack.1 \
+        jstat.1 \
+        jstatd.1 \
+        rmic.1 \
+        serialver.1
 
-  # This variable is potentially overridden in the closed makefile.
-  MAN_SRC_BASEDIR ?= $(TOPDIR)/src
+    # This variable is potentially overridden in the closed makefile.
+    MAN_SRC_BASEDIR ?= $(TOPDIR)/src
 
-  ifeq ($(OPENJDK_TARGET_OS), linux)
-    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
-    MAN1_SUBDIR = man
-  endif
-  ifeq ($(OPENJDK_TARGET_OS), solaris)
-    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc
-    MAN1_SUBDIR = sun/man/man1
-  endif
-  ifeq ($(OPENJDK_TARGET_OS), macosx)
-    MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
-    MAN1_SUBDIR = man
-  endif
+    ifeq ($(OPENJDK_TARGET_OS), linux)
+      MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
+      MAN1_SUBDIR = man
+    endif
+    ifeq ($(OPENJDK_TARGET_OS), solaris)
+      MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc
+      MAN1_SUBDIR = sun/man/man1
+    endif
+    ifeq ($(OPENJDK_TARGET_OS), macosx)
+      MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
+      MAN1_SUBDIR = man
+    endif
 
-  $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
+    $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
 	$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
 	$(install-file)
 
-  $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
+    $(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
 	$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
 	$(install-file)
 
-  $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
+    $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
 	$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
 	$(install-file)
 
-  $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
+    $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
 	$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
 	$(install-file)
 
-  ifeq ($(OPENJDK_TARGET_OS), solaris)
-    $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
+    ifeq ($(OPENJDK_TARGET_OS), solaris)
+      $(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
 	$(call LogInfo, Converting $(patsubst $(OUTPUTDIR)/%,%,$@))
 	$(install-file)
 
-    $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
+      $(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
 	$(call LogInfo, Converting $(patsubst $(OUTPUTDIR)/%,%,$@))
 	$(install-file)
-  endif
+    endif
 
-  ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
-    $(JRE_IMAGE_DIR)/man/ja:
+    ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
+      $(JRE_IMAGE_DIR)/man/ja:
 	$(call LogInfo, Creating $(patsubst $(OUTPUTDIR)/%,%,$@))
 	$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
 
-    $(JDK_IMAGE_DIR)/man/ja:
+      $(JDK_IMAGE_DIR)/man/ja:
 	$(call LogInfo, Creating $(patsubst $(OUTPUTDIR)/%,%,$@))
 	$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
-  endif
+    endif
 
-  ifeq ($(OPENJDK_TARGET_OS), solaris)
-    JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
-        $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \
-        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
-        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES))
+    ifeq ($(OPENJDK_TARGET_OS), solaris)
+      JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
+          $(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \
+          $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
+          $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES))
+
+      JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
+          $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \
+          $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
+          $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES))
+    endif
 
-    JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
-        $(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \
-        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
-        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES))
-  endif
+    ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
+      JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
+          $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
+          $(JRE_IMAGE_DIR)/man/ja
 
-  ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
-    JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
-        $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
-        $(JRE_IMAGE_DIR)/man/ja
+      JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
+          $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
+          $(JDK_IMAGE_DIR)/man/ja
+    endif
 
-    JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
-        $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
-        $(JDK_IMAGE_DIR)/man/ja
-  endif
-
-  JRE_TARGETS += $(JRE_MAN_PAGE_LIST)
-  JDK_TARGETS += $(JDK_MAN_PAGE_LIST)
+    JRE_TARGETS += $(JRE_MAN_PAGE_LIST)
+    JDK_TARGETS += $(JDK_MAN_PAGE_LIST)
+  endif # BUILD_MANPAGES
 endif # Windows
 
 ################################################################################
--- a/make/autoconf/configure.ac	Tue Jul 24 10:07:26 2018 +0100
+++ b/make/autoconf/configure.ac	Fri Jul 27 12:16:01 2018 +0100
@@ -233,6 +233,7 @@
 JDKOPT_ENABLE_DISABLE_FAILURE_HANDLER
 JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
 JDKOPT_EXCLUDE_TRANSLATIONS
+JDKOPT_ENABLE_DISABLE_MANPAGES
 
 ###############################################################################
 #
--- a/make/autoconf/hotspot.m4	Tue Jul 24 10:07:26 2018 +0100
+++ b/make/autoconf/hotspot.m4	Fri Jul 27 12:16:01 2018 +0100
@@ -331,8 +331,10 @@
 
   # Enable JFR by default, except for Zero, linux-sparcv9 and on minimal.
   if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
-    if test "x$OPENJDK_TARGET_OS" != xlinux || test "x$OPENJDK_TARGET_CPU" != xsparcv9; then
-      NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jfr"
+    if test "x$OPENJDK_TARGET_OS" != xaix; then
+      if test "x$OPENJDK_TARGET_OS" != xlinux || test "x$OPENJDK_TARGET_CPU" != xsparcv9; then
+        NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jfr"
+      fi
     fi
   fi
 
@@ -459,7 +461,7 @@
       JVM_FEATURES_aot="aot"
     fi
   else
-    if test "x$enable_aot" = "xno" || "x$DISABLE_AOT" = "xaot"; then
+    if test "x$enable_aot" = "xno" || test "x$DISABLE_AOT" = "xaot"; then
       AC_MSG_RESULT([no, forced])
     else
       AC_MSG_RESULT([no])
--- a/make/autoconf/jdk-options.m4	Tue Jul 24 10:07:26 2018 +0100
+++ b/make/autoconf/jdk-options.m4	Fri Jul 27 12:16:01 2018 +0100
@@ -604,3 +604,29 @@
 
   AC_SUBST(EXCLUDE_TRANSLATIONS)
 ])
+
+################################################################################
+#
+# Optionally disable man pages
+#
+AC_DEFUN([JDKOPT_ENABLE_DISABLE_MANPAGES],
+[
+  AC_ARG_ENABLE([manpages], [AS_HELP_STRING([--disable-manpages],
+      [Set to disable building of man pages @<:@enabled@:>@])])
+
+  BUILD_MANPAGES="true"
+  AC_MSG_CHECKING([if man pages should be built])
+  if test "x$enable_manpages" = "x"; then
+    AC_MSG_RESULT([yes])
+  elif test "x$enable_manpages" = "xyes"; then
+    AC_MSG_RESULT([yes, forced])
+  elif test "x$enable_manpages" = "xno"; then
+    AC_MSG_RESULT([no, forced])
+    BUILD_MANPAGES="false"
+  else
+    AC_MSG_RESULT([no])
+    AC_MSG_ERROR([--enable-manpages can only yes/no or empty])
+  fi
+
+  AC_SUBST(BUILD_MANPAGES)
+])
--- a/make/autoconf/jdk-version.m4	Tue Jul 24 10:07:26 2018 +0100
+++ b/make/autoconf/jdk-version.m4	Fri Jul 27 12:16:01 2018 +0100
@@ -139,15 +139,18 @@
     AC_MSG_ERROR([--with-version-string must have a value])
   elif test "x$with_version_string" != x; then
     # Additional [] needed to keep m4 from mangling shell constructs.
-    if [ [[ $with_version_string =~ ^([0-9]+)(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(-([a-zA-Z]+))?((\+)([0-9]+)?(-([-a-zA-Z0-9.]+))?)?$ ]] ]; then
+    if [ [[ $with_version_string =~ ^([0-9]+)(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(-([a-zA-Z]+))?((\+)([0-9]+)?(-([-a-zA-Z0-9.]+))?)?$ ]] ]; then
       VERSION_FEATURE=${BASH_REMATCH[[1]]}
       VERSION_INTERIM=${BASH_REMATCH[[3]]}
       VERSION_UPDATE=${BASH_REMATCH[[5]]}
       VERSION_PATCH=${BASH_REMATCH[[7]]}
-      VERSION_PRE=${BASH_REMATCH[[9]]}
-      version_plus_separator=${BASH_REMATCH[[11]]}
-      VERSION_BUILD=${BASH_REMATCH[[12]]}
-      VERSION_OPT=${BASH_REMATCH[[14]]}
+      VERSION_EXTRA1=${BASH_REMATCH[[9]]}
+      VERSION_EXTRA2=${BASH_REMATCH[[11]]}
+      VERSION_EXTRA3=${BASH_REMATCH[[13]]}
+      VERSION_PRE=${BASH_REMATCH[[15]]}
+      version_plus_separator=${BASH_REMATCH[[17]]}
+      VERSION_BUILD=${BASH_REMATCH[[18]]}
+      VERSION_OPT=${BASH_REMATCH[[20]]}
       # Unspecified numerical fields are interpreted as 0.
       if test "x$VERSION_INTERIM" = x; then
         VERSION_INTERIM=0
@@ -158,6 +161,15 @@
       if test "x$VERSION_PATCH" = x; then
         VERSION_PATCH=0
       fi
+      if test "x$VERSION_EXTRA1" = x; then
+        VERSION_EXTRA1=0
+      fi
+      if test "x$VERSION_EXTRA2" = x; then
+        VERSION_EXTRA2=0
+      fi
+      if test "x$VERSION_EXTRA3" = x; then
+        VERSION_EXTRA3=0
+      fi
       if test "x$version_plus_separator" != x \
           && test "x$VERSION_BUILD$VERSION_OPT" = x; then
         AC_MSG_ERROR([Version string contains + but both 'BUILD' and 'OPT' are missing])
@@ -327,6 +339,72 @@
     fi
   fi
 
+  # The 1st version extra number, if any
+  AC_ARG_WITH(version-extra1, [AS_HELP_STRING([--with-version-extra1],
+      [Set 1st version extra number @<:@not specified@:>@])],
+      [with_version_extra1_present=true], [with_version_extra1_present=false])
+
+  if test "x$with_version_extra1_present" = xtrue; then
+    if test "x$with_version_extra1" = xyes; then
+      AC_MSG_ERROR([--with-version-extra1 must have a value])
+    elif test "x$with_version_extra1" = xno; then
+      # Interpret --without-* as empty string (i.e. 0) instead of the literal "no"
+      VERSION_EXTRA1=0
+    elif test "x$with_version_extra1" = x; then
+      VERSION_EXTRA1=0
+    else
+      JDKVER_CHECK_AND_SET_NUMBER(VERSION_EXTRA1, $with_version_extra1)
+    fi
+  else
+    if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
+      VERSION_EXTRA1=$DEFAULT_VERSION_EXTRA1
+    fi
+  fi
+
+  # The 2nd version extra number, if any
+  AC_ARG_WITH(version-extra2, [AS_HELP_STRING([--with-version-extra2],
+      [Set 2nd version extra number @<:@not specified@:>@])],
+      [with_version_extra2_present=true], [with_version_extra2_present=false])
+
+  if test "x$with_version_extra2_present" = xtrue; then
+    if test "x$with_version_extra2" = xyes; then
+      AC_MSG_ERROR([--with-version-extra2 must have a value])
+    elif test "x$with_version_extra2" = xno; then
+      # Interpret --without-* as empty string (i.e. 0) instead of the literal "no"
+      VERSION_EXTRA2=0
+    elif test "x$with_version_extra2" = x; then
+      VERSION_EXTRA2=0
+    else
+      JDKVER_CHECK_AND_SET_NUMBER(VERSION_EXTRA2, $with_version_extra2)
+    fi
+  else
+    if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
+      VERSION_EXTRA2=$DEFAULT_VERSION_EXTRA2
+    fi
+  fi
+
+  # The 3rd version extra number, if any
+  AC_ARG_WITH(version-extra3, [AS_HELP_STRING([--with-version-extra3],
+      [Set 3rd version extra number @<:@not specified@:>@])],
+      [with_version_extra3_present=true], [with_version_extra3_present=false])
+
+  if test "x$with_version_extra3_present" = xtrue; then
+    if test "x$with_version_extra3" = xyes; then
+      AC_MSG_ERROR([--with-version-extra3 must have a value])
+    elif test "x$with_version_extra3" = xno; then
+      # Interpret --without-* as empty string (i.e. 0) instead of the literal "no"
+      VERSION_EXTRA3=0
+    elif test "x$with_version_extra3" = x; then
+      VERSION_EXTRA3=0
+    else
+      JDKVER_CHECK_AND_SET_NUMBER(VERSION_EXTRA3, $with_version_extra3)
+    fi
+  else
+    if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
+      VERSION_EXTRA3=$DEFAULT_VERSION_EXTRA3
+    fi
+  fi
+
   # Calculate derived version properties
 
   # Set VERSION_IS_GA based on if VERSION_PRE has a value
@@ -339,9 +417,12 @@
   # VERSION_NUMBER but always with exactly 4 positions, with 0 for empty positions.
   VERSION_NUMBER_FOUR_POSITIONS=$VERSION_FEATURE.$VERSION_INTERIM.$VERSION_UPDATE.$VERSION_PATCH
 
-  stripped_version_number=$VERSION_NUMBER_FOUR_POSITIONS
+  # VERSION_NUMBER but always with all positions, with 0 for empty positions.
+  VERSION_NUMBER_ALL_POSITIONS=$VERSION_NUMBER_FOUR_POSITIONS.$VERSION_EXTRA1.$VERSION_EXTRA2.$VERSION_EXTRA3
+
+  stripped_version_number=$VERSION_NUMBER_ALL_POSITIONS
   # Strip trailing zeroes from stripped_version_number
-  for i in 1 2 3 ; do stripped_version_number=${stripped_version_number%.0} ; done
+  for i in 1 2 3 4 5 6 ; do stripped_version_number=${stripped_version_number%.0} ; done
   VERSION_NUMBER=$stripped_version_number
 
   # The complete version string, with additional build information
@@ -392,6 +473,9 @@
   AC_SUBST(VERSION_INTERIM)
   AC_SUBST(VERSION_UPDATE)
   AC_SUBST(VERSION_PATCH)
+  AC_SUBST(VERSION_EXTRA1)
+  AC_SUBST(VERSION_EXTRA2)
+  AC_SUBST(VERSION_EXTRA3)
   AC_SUBST(VERSION_PRE)
   AC_SUBST(VERSION_BUILD)
   AC_SUBST(VERSION_OPT)
--- a/make/autoconf/spec.gmk.in	Tue Jul 24 10:07:26 2018 +0100
+++ b/make/autoconf/spec.gmk.in	Fri Jul 27 12:16:01 2018 +0100
@@ -165,6 +165,9 @@
 VERSION_INTERIM := @VERSION_INTERIM@
 VERSION_UPDATE := @VERSION_UPDATE@
 VERSION_PATCH := @VERSION_PATCH@
+VERSION_EXTRA1 := @VERSION_EXTRA1@
+VERSION_EXTRA2 := @VERSION_EXTRA2@
+VERSION_EXTRA3 := @VERSION_EXTRA3@
 # The pre-release identifier (string)
 VERSION_PRE := @VERSION_PRE@
 # The build number (numerical)
@@ -203,6 +206,9 @@
     -DVERSION_INTERIM=$(VERSION_INTERIM) \
     -DVERSION_UPDATE=$(VERSION_UPDATE) \
     -DVERSION_PATCH=$(VERSION_PATCH) \
+    -DVERSION_EXTRA1=$(VERSION_EXTRA1) \
+    -DVERSION_EXTRA2=$(VERSION_EXTRA2) \
+    -DVERSION_EXTRA3=$(VERSION_EXTRA3) \
     -DVERSION_PRE='"$(VERSION_PRE)"' \
     -DVERSION_BUILD=$(VERSION_BUILD) \
     -DVERSION_OPT='"$(VERSION_OPT)"' \
@@ -305,6 +311,8 @@
 
 EXCLUDE_TRANSLATIONS := @EXCLUDE_TRANSLATIONS@
 
+BUILD_MANPAGES := @BUILD_MANPAGES@
+
 # The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep
 # it in sync.
 BOOT_JDK:=@BOOT_JDK@
--- a/make/autoconf/version-numbers	Tue Jul 24 10:07:26 2018 +0100
+++ b/make/autoconf/version-numbers	Fri Jul 27 12:16:01 2018 +0100
@@ -29,6 +29,9 @@
 DEFAULT_VERSION_INTERIM=0
 DEFAULT_VERSION_UPDATE=0
 DEFAULT_VERSION_PATCH=0
+DEFAULT_VERSION_EXTRA1=0
+DEFAULT_VERSION_EXTRA2=0
+DEFAULT_VERSION_EXTRA3=0
 DEFAULT_VERSION_DATE=2019-03-19
 DEFAULT_VERSION_CLASSFILE_MAJOR=56  # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
 DEFAULT_VERSION_CLASSFILE_MINOR=0
--- a/make/conf/jib-profiles.js	Tue Jul 24 10:07:26 2018 +0100
+++ b/make/conf/jib-profiles.js	Fri Jul 27 12:16:01 2018 +0100
@@ -242,7 +242,8 @@
         dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf"],
         default_make_targets: ["product-bundles", "test-bundles"],
         configure_args: concat(["--enable-jtreg-failure-handler"],
-            "--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I",
+            "--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
+            "--disable-manpages",
             versionArgs(input, common))
     };
     // Extra settings for debug profiles
--- a/make/jdk/src/classes/build/tools/jdwpgen/RootNode.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/make/jdk/src/classes/build/tools/jdwpgen/RootNode.java	Fri Jul 27 12:16:01 2018 +0100
@@ -52,14 +52,16 @@
         writer.println("</style>");
         writer.println("</head>");
         writer.println("<body>");
-        writer.println("<ul>");
+        writer.println("<ul role=\"navigation\">");
         for (Node node : components) {
             node.documentIndex(writer);
         }
         writer.println("</ul>");
+        writer.println("<div role=\"main\">");
         for (Node node : components) {
             node.document(writer);
         }
+        writer.println("</div>");
         writer.println("</body></html>");
     }
 
--- a/src/demo/share/jfc/SwingSet2/resources/swingset_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/demo/share/jfc/SwingSet2/resources/swingset_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -128,24 +128,24 @@
 
 FileMenu.file.labelAndMnemonic=\u30D5\u30A1\u30A4\u30EB(&F)
 FileMenu.accessible_description=\u30D5\u30A1\u30A4\u30EB\u30FB\u30E1\u30CB\u30E5\u30FC
-FileMenu.about.labelAndMnemonic=\u60C5\u5831(&B)
+FileMenu.about.labelAndMnemonic=\u6982\u8981(&B)
 FileMenu.about_accessible_description=SwingSet2\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u8A73\u7D30\u3092\u78BA\u8A8D\u3057\u307E\u3059
 FileMenu.open.labelAndMnemonic=\u958B\u304F(&O)
-FileMenu.open_accessible_description=\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u305F\u3081\u306E\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u30FB\u30E1\u30CB\u30E5\u30FC\u9805\u76EE
+FileMenu.open_accessible_description=\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u305F\u3081\u306E\u30E1\u30CB\u30E5\u30FC\u9805\u76EE
 FileMenu.save.labelAndMnemonic=\u4FDD\u5B58(&S)
-FileMenu.save_accessible_description=\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3059\u308B\u305F\u3081\u306E\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u30FB\u30E1\u30CB\u30E5\u30FC\u9805\u76EE
+FileMenu.save_accessible_description=\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3059\u308B\u305F\u3081\u306E\u30E1\u30CB\u30E5\u30FC\u9805\u76EE
 FileMenu.save_as.labelAndMnemonic=\u5225\u540D\u4FDD\u5B58(&A)...
-FileMenu.save_as_accessible_description=\u30D5\u30A1\u30A4\u30EB\u3092\u5225\u540D\u4FDD\u5B58\u3059\u308B\u305F\u3081\u306E\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u30FB\u30E1\u30CB\u30E5\u30FC\u9805\u76EE
+FileMenu.save_as_accessible_description=\u30D5\u30A1\u30A4\u30EB\u3092\u5225\u540D\u4FDD\u5B58\u3059\u308B\u305F\u3081\u306E\u30E1\u30CB\u30E5\u30FC\u9805\u76EE
 FileMenu.exit.labelAndMnemonic=\u7D42\u4E86(&X)
 FileMenu.exit_accessible_description=SwingSet2\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u7D42\u4E86\u3057\u307E\u3059
 
 ### Multi-Screen menu ###
-MultiMenu.multi.labelAndMnemonic=\u30DE\u30EB\u30C1\u30B9\u30AF\u30EA\u30FC\u30F3(&M)
-MultiMenu.multi_accessible_description=\u30DE\u30EB\u30C1\u30B9\u30AF\u30EA\u30FC\u30F3\u30FB\u30E1\u30CB\u30E5\u30FC
-MultiMenu.all.labelAndMnemonic=SwingSet2\u3092\u3059\u3079\u3066\u306E\u30B9\u30AF\u30EA\u30FC\u30F3\u306B\u4F5C\u6210\u3057\u307E\u3059(&A)
-MultiMenu.all_accessible_description=SwingSet2\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u30B9\u30AF\u30EA\u30FC\u30F3\u3054\u3068\u306B\u4F5C\u6210\u3057\u307E\u3059
-MultiMenu.single.labelAndMnemonic=SwingSet2\u3092\u30B9\u30AF\u30EA\u30FC\u30F3\u306B\u4F5C\u6210\u3057\u307E\u3059
-MultiMenu.single_accessible_description=SwingSet2\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u30B9\u30AF\u30EA\u30FC\u30F3\u306B\u4F5C\u6210\u3057\u307E\u3059
+MultiMenu.multi.labelAndMnemonic=\u30B9\u30AF\u30EA\u30FC\u30F3\u30FB\u30E2\u30FC\u30C9(&M)
+MultiMenu.multi_accessible_description=\u30B9\u30AF\u30EA\u30FC\u30F3\u30FB\u30E1\u30CB\u30E5\u30FC
+MultiMenu.all.labelAndMnemonic=\u30DE\u30EB\u30C1\u30FB\u30B9\u30AF\u30EA\u30FC\u30F3(&A)
+MultiMenu.all_accessible_description=SwingSet2\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u3059\u3079\u3066\u306E\u30B9\u30AF\u30EA\u30FC\u30F3\u306B\u4F5C\u6210\u3057\u307E\u3059
+MultiMenu.single.labelAndMnemonic=\u30B7\u30F3\u30B0\u30EB\u30FB\u30B9\u30AF\u30EA\u30FC\u30F3
+MultiMenu.single_accessible_description=SwingSet2\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u30921\u3064\u306E\u30B9\u30AF\u30EA\u30FC\u30F3\u306B\u4F5C\u6210\u3057\u307E\u3059
 
 
 ################################
@@ -295,7 +295,7 @@
 FileChooserDemo.help=\u30D8\u30EB\u30D7
 FileChooserDemo.find=\u691C\u7D22
 FileChooserDemo.ok=OK
-FileChooserDemo.about=\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831
+FileChooserDemo.about=\u8A73\u7D30
 FileChooserDemo.cancel=\u53D6\u6D88
 
 ### Html Demo ###
@@ -308,20 +308,20 @@
 
 ### Internal Frame Demo ###
 
-InternalFrameDemo.accessible_description=JInternal Frame\u30C7\u30E2
+InternalFrameDemo.accessible_description=JInternalFrame\u30C7\u30E2
 InternalFrameDemo.create_frames.labelAndMnemonic=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u3055\u308C\u305F\u5185\u90E8\u30D5\u30EC\u30FC\u30E0\u306E\u4F5C\u6210
 InternalFrameDemo.title_text_field.labelAndMnemonic=\u30D5\u30EC\u30FC\u30E0\u306E\u30BF\u30A4\u30C8\u30EB:
 InternalFrameDemo.frame.labelAndMnemonic=\u30D5\u30EC\u30FC\u30E0
 InternalFrameDemo.palette.labelAndMnemonic=\u5185\u90E8\u30D5\u30EC\u30FC\u30E0\u306E\u4F5C\u6210
-InternalFrameDemo.name=Internal Frame\u30C7\u30E2
-InternalFrameDemo.tooltip=JInternal Frame\u30C7\u30E2
+InternalFrameDemo.name=InternalFrame\u30C7\u30E2
+InternalFrameDemo.tooltip=JInternalFrame\u30C7\u30E2
 InternalFrameDemo.closable.labelAndMnemonic=\u30AF\u30ED\u30FC\u30BA\u53EF
 InternalFrameDemo.resizable.labelAndMnemonic=\u30B5\u30A4\u30BA\u5909\u66F4\u53EF
 InternalFrameDemo.iconifiable.labelAndMnemonic=\u6700\u5C0F\u5316\u53EF
 InternalFrameDemo.maximizable.labelAndMnemonic=\u6700\u5927\u5316\u53EF
-InternalFrameDemo.toast=Cheers
-InternalFrameDemo.duke=Your Grace
-InternalFrameDemo.duchess=Duchess
+InternalFrameDemo.toast=\u4E7E\u676F
+InternalFrameDemo.duke=\u730A\u4E0B
+InternalFrameDemo.duchess=\u516C\u7235\u592B\u4EBA
 InternalFrameDemo.cab=Anyone need a Taxi?
 
 
@@ -330,8 +330,8 @@
 ListDemo.accessible_description=JList\u30C7\u30E2
 ListDemo.name=List\u30C7\u30E2
 ListDemo.tooltip=JList\u30C7\u30E2
-ListDemo.prefixes=\u63A5\u982D\u8F9E
-ListDemo.suffixes=\u63A5\u5C3E\u8F9E
+ListDemo.prefixes=\u30D7\u30EA\u30D5\u30A3\u30AF\u30B9
+ListDemo.suffixes=\u30B5\u30D5\u30A3\u30AF\u30B9
 ListDemo.count.labelAndMnemonic=\u751F\u6210\u3055\u308C\u305F\u30EA\u30B9\u30C8\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u6570:
 ListDemo.all=\u3059\u3079\u3066
 ListDemo.none=\u306A\u3057
@@ -342,14 +342,14 @@
 ListDemo.green=\u7DD1\u8272\u306E\u4F1A\u793E\u30ED\u30B4\u30FB\u30A4\u30E1\u30FC\u30B8
 ListDemo.magenta=\u30DE\u30BC\u30F3\u30BF\u306E\u4F1A\u793E\u30ED\u30B4\u30FB\u30A4\u30E1\u30FC\u30B8
 ListDemo.cyan=\u30B7\u30A2\u30F3\u306E\u4F1A\u793E\u30ED\u30B4\u30FB\u30A4\u30E1\u30FC\u30B8
-ListDemo.description=<html><P STYLE="margin-left: .25in; margin-right: .25in">\u3053\u306E\u30C7\u30E2\u3067\u306F\u30012\u3064\u306E\u7570\u306A\u308B\u65B9\u6CD5\u3067\u4F5C\u6210\u3057\u305F\u30EA\u30B9\u30C8\u3092\u7D39\u4ECB\u3057\u307E\u3059\u3002\u5DE6\u5074\u306B\u3042\u308B<b>JList</b>\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30EA\u30B9\u30C8\u9805\u76EE\u306F\u3001\u30C1\u30A7\u30C3\u30AF\u30FB\u30DE\u30FC\u30AF\u306E\u4ED8\u3051\u3089\u308C\u305F\u63A5\u982D\u8F9E\u304A\u3088\u3073\u63A5\u5C3E\u8F9E\u306E\u9806\u5217\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u53F3\u5074\u306E\u63A5\u982D\u8F9E\u304A\u3088\u3073\u63A5\u5C3E\u8F9E\u306E\u30C1\u30A7\u30C3\u30AF\u30FB\u30DC\u30C3\u30AF\u30B9\u306E\u5217\u306F\u3001\u5782\u76F4\u914D\u7F6E\u306E<b>BoxLayout</b>\u3092\u6301\u3064<b>JPanel</b>\u3092\u4F7F\u7528\u3057\u3066<b>JScrollPane</b>\u5185\u306B\u4F5C\u6210\u3055\u308C\u307E\u3059\u3002</P></html>
+ListDemo.description=<html><P STYLE="margin-left: .25in; margin-right: .25in">\u3053\u306E\u30C7\u30E2\u3067\u306F\u30012\u3064\u306E\u7570\u306A\u308B\u65B9\u6CD5\u3067\u4F5C\u6210\u3057\u305F\u30EA\u30B9\u30C8\u3092\u7D39\u4ECB\u3057\u307E\u3059\u3002\u5DE6\u5074\u306B\u3042\u308B<b>JList</b>\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30EA\u30B9\u30C8\u9805\u76EE\u306F\u3001\u30C1\u30A7\u30C3\u30AF\u30FB\u30DE\u30FC\u30AF\u306E\u4ED8\u3051\u3089\u308C\u305F\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304A\u3088\u3073\u30B5\u30D5\u30A3\u30AF\u30B9\u306E\u9806\u5217\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u53F3\u5074\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304A\u3088\u3073\u30B5\u30D5\u30A3\u30AF\u30B9\u306E\u30C1\u30A7\u30C3\u30AF\u30FB\u30DC\u30C3\u30AF\u30B9\u306E\u5217\u306F\u3001\u5782\u76F4\u914D\u7F6E\u306E<b>BoxLayout</b>\u3092\u6301\u3064<b>JPanel</b>\u3092\u4F7F\u7528\u3057\u3066<b>JScrollPane</b>\u5185\u306B\u4F5C\u6210\u3055\u308C\u307E\u3059\u3002</P></html>
 
 
 ### OptionPane Demo ###
 
 OptionPaneDemo.accessible_description=OptionPane\u30C7\u30E2\u3067\u306F\u3001\u69D8\u3005\u306A\u5171\u901A\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u30FB\u30C0\u30A4\u30A2\u30ED\u30B0\u30FB\u30DC\u30C3\u30AF\u30B9\u3092\u751F\u6210\u3059\u308B\u305F\u3081\u306EJOptionPane\u306E\u4F7F\u7528\u4F8B\u3092\u7D39\u4ECB\u3057\u307E\u3059
 OptionPaneDemo.tooltip=JOptionPane\u30C7\u30E2
-OptionPaneDemo.name=Option Pane\u30C7\u30E2
+OptionPaneDemo.name=OptionPane\u30C7\u30E2
 
 OptionPaneDemo.warningbutton=\u8B66\u544A\u30C0\u30A4\u30A2\u30ED\u30B0\u306E\u8868\u793A
 OptionPaneDemo.componentbutton=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30FB\u30C0\u30A4\u30A2\u30ED\u30B0\u306E\u8868\u793A
@@ -367,10 +367,10 @@
 OptionPaneDemo.confirmno=\u5C4B\u5185\u306B\u3044\u3066\u69D8\u3005\u306A\u3082\u306E\u304B\u3089\u4FDD\u8B77\u3055\u308C\u3066\u3044\u308B\u306E\u306F\u3044\u3044\u3053\u3068\u3067\u3059\u3002
 
 OptionPaneDemo.inputquestion=\u597D\u304D\u306A\u6620\u753B\u306F\u4F55\u3067\u3059\u304B\u3002
-OptionPaneDemo.inputresponse=\u3042\u308C\u306F\u3068\u3066\u3082\u3044\u3044\u6620\u753B\u3067\u3057\u305F\u306D\u3002
+OptionPaneDemo.inputresponse=\u305D\u308C\u306F\u3044\u3044\u6620\u753B\u3067\u3059\u306D\u3002
 
 OptionPaneDemo.componenttitle=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30FB\u30C0\u30A4\u30A2\u30ED\u30B0\u306E\u4F8B
-OptionPaneDemo.componentmessage=<html>JOptionPane\u306B\u306F\u3001\u30C6\u30AD\u30B9\u30C8\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u306A\u3069\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092<br>\u5FC5\u8981\u306A\u3060\u3051\u542B\u3081\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002</html>
+OptionPaneDemo.componentmessage=<html>JOptionPane\u306B\u306F\u3001\u30C6\u30AD\u30B9\u30C8\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u306A\u3069\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u5FC5\u8981\u306A\u3060\u3051\u542B\u3081\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002</html>
 OptionPaneDemo.componenttextfield=\u30B3\u30F3\u30DC\u30DC\u30C3\u30AF\u30B9:
 OptionPaneDemo.component_cb1=\u9805\u76EE1
 OptionPaneDemo.component_cb2=\u9805\u76EE2
@@ -405,7 +405,7 @@
 ### ScrollPane Demo ###
 
 ScrollPaneDemo.accessible_description=JScrollPane\u30C7\u30E2
-ScrollPaneDemo.name=Scroll Pane\u30C7\u30E2
+ScrollPaneDemo.name=ScrollPane\u30C7\u30E2
 ScrollPaneDemo.tooltip=JScrollPane\u30C7\u30E2
 ScrollPaneDemo.crayons=\u305F\u304F\u3055\u3093\u306E\u30AF\u30EC\u30E8\u30F3
 ScrollPaneDemo.colheader=\u5217\u30D8\u30C3\u30C0\u30FC
@@ -427,20 +427,20 @@
 SliderDemo.plain=\u30D7\u30EC\u30FC\u30F3
 SliderDemo.a_plain_slider=\u30D7\u30EC\u30FC\u30F3\u306E\u30B9\u30E9\u30A4\u30C0
 SliderDemo.majorticks=\u5927\u76EE\u76DB
-SliderDemo.majorticksdescription=\u5927\u76EE\u76DB\u3092\u8868\u793A\u3059\u308B\u30B9\u30E9\u30A4\u30C0
-SliderDemo.ticks=\u5C0F\u76EE\u76DB\u3001Snap-to-ticks\u304A\u3088\u3073\u30E9\u30D9\u30EB
+SliderDemo.majorticksdescription=\u5927\u76EE\u76DB\u3092\u6301\u3064\u30B9\u30E9\u30A4\u30C0
+SliderDemo.ticks=\u5927\u5C0F\u76EE\u76DB\u3068\u30E9\u30D9\u30EB(SnapToTicks=true)
 SliderDemo.minorticks=\u5C0F\u76EE\u76DB
-SliderDemo.minorticksdescription=\u5927\u76EE\u76DB\u3068\u5C0F\u76EE\u76DB\u3092\u8868\u793A\u3059\u308B\u30B9\u30E9\u30A4\u30C0(\u76EE\u76DB\u30DE\u30FC\u30AF\u306B\u30B9\u30CA\u30C3\u30D7\u3059\u308B\u30B9\u30E9\u30A4\u30C0\u30FB\u30A2\u30AF\u30B7\u30E7\u30F3\u3042\u308A\u3001\u4E00\u90E8\u306E\u76EE\u76DB\u306F\u76EE\u7ACB\u3064\u30E9\u30D9\u30EB\u4ED8\u304D)
+SliderDemo.minorticksdescription=SnapToTicks=true\u3067\u5927\u76EE\u76DB\u3001\u5C0F\u76EE\u76DB\u304A\u3088\u3073\u30E9\u30D9\u30EB\u4ED8\u304D\u306E\u30B9\u30E9\u30A4\u30C0
 SliderDemo.disabled=\u7121\u52B9
-SliderDemo.disableddescription=\u7121\u52B9\u5316\u3055\u308C\u305F\u3001\u5927\u76EE\u76DB\u3068\u5C0F\u76EE\u76DB\u3092\u8868\u793A\u3059\u308B\u30B9\u30E9\u30A4\u30C0(\u64CD\u4F5C\u4E0D\u53EF)
+SliderDemo.disableddescription=\u5927\u5C0F\u306E\u76EE\u76DB\u3092\u6301\u3064\u7121\u52B9\u306A\u30B9\u30E9\u30A4\u30C0(\u64CD\u4F5C\u4E0D\u53EF)
 
 ### SplitPane Demo ###
 
 SplitPaneDemo.accessible_description=JSplitPane\u30C7\u30E2
-SplitPaneDemo.name=Split Pane\u30C7\u30E2
+SplitPaneDemo.name=SplitPane\u30C7\u30E2
 SplitPaneDemo.tooltip=JSplitPane\u30C7\u30E2
-SplitPaneDemo.earth=\u6BCD\u306A\u308B\u5730\u7403
-SplitPaneDemo.moon=\u6708\u9762\u306E\u5B87\u5B99\u98DB\u884C\u58EB
+SplitPaneDemo.earth=\u5730\u7403
+SplitPaneDemo.moon=\u5B87\u5B99\u98DB\u884C\u58EB
 SplitPaneDemo.vert_split.labelAndMnemonic=\u5782\u76F4\u5206\u5272(&V)
 SplitPaneDemo.horz_split.labelAndMnemonic=\u6C34\u5E73\u5206\u5272(&R)
 SplitPaneDemo.cont_layout.labelAndMnemonic=\u9023\u7D9A\u3057\u305F\u30EC\u30A4\u30A2\u30A6\u30C8(&C)
@@ -460,7 +460,7 @@
 TabbedPaneDemo.tooltip=JTabbedPane\u30C7\u30E2
 TabbedPaneDemo.name=TabbedPane\u30C7\u30E2
 
-TabbedPaneDemo.bounce=<html><font color=blue><bold><center>Bouncing Babies!</center></bold></font></html>
+TabbedPaneDemo.bounce=<html><font color=blue><bold><center>\u5143\u6C17\u306A\u5B50\u4F9B\u9054\u3002</center></bold></font></html>
 TabbedPaneDemo.stephen=\u30B9\u30C6\u30A3\u30FC\u30F4\u30F3
 TabbedPaneDemo.david=\u30C7\u30A4\u30F4\u30A3\u30C3\u30C9
 TabbedPaneDemo.matthew=\u30DE\u30B7\u30E5\u30FC
@@ -533,7 +533,7 @@
 TableDemo.2001=2001\u5E74\u5B87\u5B99\u306E\u65C5
 TableDemo.buckaroo=\u30D0\u30AB\u30EB\u30FC\u30FB\u30D0\u30F3\u30B6\u30A4\u306E8\u6B21\u5143\u30AE\u30E3\u30E9\u30AF\u30B7\u30FC
 TableDemo.firstsight=\u3042\u306A\u305F\u304C\u898B\u3048\u306A\u304F\u3066\u3082
-TableDemo.airplane=\u30D5\u30E9\u30A4\u30F3\u30B0\u30FB\u30CF\u30A4(\u5168\u30B7\u30EA\u30FC\u30BA)
+TableDemo.airplane=\u30D5\u30E9\u30A4\u30F3\u30B0\u30FB\u30CF\u30A4(\u30B7\u30EA\u30FC\u30BA)
 TableDemo.aliens=\u30A8\u30A4\u30EA\u30A2\u30F3
 TableDemo.bicycle=\u81EA\u8EE2\u8ECA\u6CE5\u68D2
 TableDemo.bladerunner=\u30D6\u30EC\u30FC\u30C9\u30FB\u30E9\u30F3\u30CA\u30FC(\u30C7\u30A3\u30EC\u30AF\u30BF\u30FC\u30BA\u30FB\u30AB\u30C3\u30C8)
@@ -541,18 +541,18 @@
 TableDemo.brazil=\u672A\u6765\u4E16\u7D00\u30D6\u30E9\u30B8\u30EB
 TableDemo.bugs=\u30D0\u30B0\u30BA\u30FB\u30E9\u30A4\u30D5
 TableDemo.city=\u30ED\u30B9\u30C8\u30FB\u30C1\u30EB\u30C9\u30EC\u30F3
-TableDemo.chusingura=\u5FE0\u81E3\u8535(1962)
+TableDemo.chusingura=\u5FE0\u81E3\u8535
 TableDemo.clock=\u6642\u8A08\u4ED5\u639B\u3051\u306E\u30AA\u30EC\u30F3\u30B8
 TableDemo.curse=\u602A\u5947\u30DF\u30A4\u30E9\u7537
 TableDemo.dasboot=U\u30DC\u30FC\u30C8
 TableDemo.dazed=\u30D0\u30C3\u30C9\u30FB\u30C1\u30E5\u30FC\u30CB\u30F3\u30B0
 TableDemo.defending=\u3042\u306A\u305F\u306E\u6B7B\u5F8C\u306B\u3054\u7528\u5FC3
-TableDemo.eraserhead=\u30A4\u30EC\u30A4\u30B6\u30FC\u30D8\u30C3\u30C9
+TableDemo.eraserhead=\u30A4\u30EC\u30A4\u30B6\u30FB\u30D8\u30C3\u30C9
 TableDemo.fifthelement=\u30D5\u30A3\u30D5\u30B9\u30FB\u30A8\u30EC\u30E1\u30F3\u30C8
 TableDemo.goodfellas=\u30B0\u30C3\u30C9\u30FB\u30D5\u30A7\u30ED\u30FC\u30BA
 TableDemo.harold=\u30CF\u30ED\u30EB\u30C9\u3068\u30E2\u30FC\u30C9
 TableDemo.joyluck=\u30B8\u30E7\u30A4\u30FB\u30E9\u30C3\u30AF\u30FB\u30AF\u30E9\u30D6
-TableDemo.jules=\u7A81\u7136\u708E\u306E\u3054\u3068\u304F
+TableDemo.jules=\u7A81\u7136\u708E\u306E\u3054\u3068\u304F\u30B8\u30E5\u30FC\u30EB\u3068\u30B8\u30E0
 TableDemo.ladyvanishes=\u30EC\u30C7\u30A3\u30FB\u30D0\u30CB\u30C3\u30B7\u30E5/\u6697\u53F7\u3092\u6B4C\u3046\u5973
 TableDemo.mohicans=\u30E9\u30B9\u30C8\u30FB\u30AA\u30D6\u30FB\u30E2\u30D2\u30AB\u30F3
 TableDemo.lonestar=\u771F\u5B9F\u306E\u56C1\u304D
@@ -581,7 +581,7 @@
 TableDemo.corn=\u3068\u3046\u3082\u308D\u3053\u3057
 TableDemo.grapes=\u3076\u3069\u3046
 TableDemo.grapefruit=\u30B0\u30EC\u30FC\u30D7\u30D5\u30EB\u30FC\u30C4
-TableDemo.kiwi=\u30AD\u30A6\u30A3\u30FB\u30D5\u30EB\u30FC\u30C4
+TableDemo.kiwi=\u30AD\u30A6\u30A4\u30FB\u30D5\u30EB\u30FC\u30C4
 TableDemo.onion=\u7389\u306D\u304E
 TableDemo.pear=\u6D0B\u306A\u3057
 TableDemo.peach=\u6843
@@ -624,15 +624,15 @@
 ### ToolTip Demo ###
 
 ToolTipDemo.accessible_description=ToolTip\u306F\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306B\u3064\u3044\u3066\u306E\u7C21\u5358\u306A\u8AAC\u660E\u3092\u8868\u793A\u3057\u307E\u3059\u3002
-ToolTipDemo.accessible_cow=\u3053\u308C\u306F\u96CC\u725B\u3067\u3059\u3002
+ToolTipDemo.accessible_cow=\u3053\u308C\u306F\u4E73\u725B\u3067\u3059
 ToolTipDemo.tooltip=ToolTip\u30C7\u30E2
 ToolTipDemo.name=ToolTip\u30C7\u30E2
-ToolTipDemo.bessie=\u96CC\u725B\u306E\u30D9\u30C3\u30B7\u30FC
-ToolTipDemo.cow=\u96CC\u725B\u3002
-ToolTipDemo.got_milk=\u725B\u4E73\u3042\u308B?
-ToolTipDemo.tail=\u3057\u3063\u307D\u3002
+ToolTipDemo.bessie=\u96CC\u725B\u306E\u30A8\u30EA\u30B6\u30D9\u30B9
+ToolTipDemo.cow=\u4E73\u725B
+ToolTipDemo.got_milk=\u725B\u4E73\u98F2\u3093\u3060?
+ToolTipDemo.tail=\u3057\u3063\u307D
 ToolTipDemo.moo=\u30E2\u30A9\u30A9\u30A9\u30A9!
-ToolTipDemo.tooltip_features=<html>\u3082\u3057\u3084\u3042\u306A\u305F\u306F\u3001\u30C4\u30FC\u30EB\u30FB\u30C1\u30C3\u30D7\u306F\u300C1\u884C\u306E\u30D7\u30EC\u30FC\u30F3\u30FB\u30C6\u30AD\u30B9\u30C8\u300D\u3057\u304B<p>\u8868\u793A\u3067\u304D\u306A\u3044\u9000\u5C48\u306A\u3082\u306E\u3060\u306A\u3093\u3066\u601D\u3063\u3066\u3084\u3057\u307E\u305B\u3093\u304B\u3002<p>\u3060\u3068\u3057\u305F\u3089\u3001\u79C1\u305F\u3061<font color=blue size=+2>Swing!</font>\u30C1\u30FC\u30E0\u304C\u305D\u306E\u8AA4\u89E3\u3092\u89E3\u3044\u3066\u3042\u3052\u307E\u3057\u3087\u3046\u3002<p>Swing\u306EToolTip\u306F\u3001HTML\u3092\u4F7F\u7528\u3057\u3066<ul><li>List\u3092\u6301\u3063\u305F\u308A\u3001<li><b>\u592A\u5B57</b>\u306B\u3057\u305F\u308A\u3001<li><em>\u5F37\u8ABF</em>\u306B\u3057\u305F\u308A\u3001<li>\u6587\u5B57\u306B<font color=red>\u8272</font>\u3092\u4ED8\u3051\u305F\u308A\u3001<li><font size=+3>\u30B5\u30A4\u30BA</font>\u3092\u5909\u3048\u305F\u308A\u3001<li><font face=AvantGarde>\u30D5\u30A9\u30F3\u30C8</font>\u3092\u5909\u3048\u305F\u308A\u3001</ul>\u305D\u3046\u305D\u3046\u3001\u3082\u3061\u308D\u3093\u8907\u6570\u884C\u306B\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u3061\u3083\u3046\u306E\u3067\u3059\u3002\u306D\u3063\u3002</html>
+ToolTipDemo.tooltip_features=<html>\u3082\u3057\u3084\u3042\u306A\u305F\u306F\u3001\u30C4\u30FC\u30EB\u30FB\u30C1\u30C3\u30D7\u306F\u300C1\u884C\u306E\u30D7\u30EC\u30A4\u30F3\u30FB\u30C6\u30AD\u30B9\u30C8\u300D\u3057\u304B<p>\u8868\u793A\u3067\u304D\u306A\u3044\u9000\u5C48\u306A\u3082\u306E\u3060\u306A\u3093\u3066\u601D\u3063\u3066\u3084\u3057\u307E\u305B\u3093\u304B\u3002<p>\u3060\u3068\u3057\u305F\u3089\u3001\u79C1\u305F\u3061<font color=blue size=+2>Swing!</font>\u30C1\u30FC\u30E0\u304C\u305D\u306E\u8AA4\u89E3\u3092\u89E3\u3044\u3066\u3042\u3052\u307E\u3057\u3087\u3046\u3002<p>Swing\u306EToolTip\u306F\u3001HTML\u3092\u4F7F\u7528\u3057\u3066<ul><li>List\u3092\u6301\u3063\u305F\u308A\u3001<li><b>\u592A\u5B57</b>\u306B\u3057\u305F\u308A\u3001<li><em>\u30A4\u30BF\u30EA\u30C3\u30AF</em>\u306B\u3057\u305F\u308A\u3001<li>\u6587\u5B57\u306B<font color=red>\u8272</font>\u3092\u4ED8\u3051\u305F\u308A\u3001<li><font size=+3>\u30B5\u30A4\u30BA</font>\u3092\u5909\u3048\u305F\u308A\u3001<li><font face=AvantGarde>\u30D5\u30A9\u30F3\u30C8</font>\u3092\u5909\u3048\u305F\u308A\u3001</ul>\u305D\u3046\u305D\u3046\u3001\u3082\u3061\u308D\u3093\u8907\u6570\u884C\u306B\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u3061\u3083\u3046\u306E\u3067\u3059\u3002\u306D\u3063\u3002</html>
 
 
 ### Tree Demo ###
--- a/src/demo/share/jfc/SwingSet2/resources/swingset_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/demo/share/jfc/SwingSet2/resources/swingset_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -319,9 +319,9 @@
 InternalFrameDemo.resizable.labelAndMnemonic=\u53EF\u8C03\u6574\u5927\u5C0F
 InternalFrameDemo.iconifiable.labelAndMnemonic=\u53EF\u56FE\u6807\u5316
 InternalFrameDemo.maximizable.labelAndMnemonic=\u53EF\u6700\u5927\u5316
-InternalFrameDemo.toast=Cheers
-InternalFrameDemo.duke=Your Grace
-InternalFrameDemo.duchess=Duchess
+InternalFrameDemo.toast=\u5E72\u676F
+InternalFrameDemo.duke=\u9601\u4E0B\uFF01
+InternalFrameDemo.duchess=\u516C\u7235\u592B\u4EBA
 InternalFrameDemo.cab=\u8C01\u9700\u8981\u51FA\u79DF\u8F66?
 
 
--- a/src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -687,8 +687,11 @@
           __ set_info("fast new_instance init check", dont_gc_arguments);
         }
 
+        // If TLAB is disabled, see if there is support for inlining contiguous
+        // allocations.
+        // Otherwise, just go to the slow path.
         if ((id == fast_new_instance_id || id == fast_new_instance_init_check_id) &&
-            UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
+            !UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
           Label slow_path;
           Register obj_size = r2;
           Register t1       = r19;
@@ -799,7 +802,10 @@
         }
 #endif // ASSERT
 
-        if (UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
+        // If TLAB is disabled, see if there is support for inlining contiguous
+        // allocations.
+        // Otherwise, just go to the slow path.
+        if (!UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
           Register arr_size = r4;
           Register t1       = r2;
           Register t2       = r5;
--- a/src/hotspot/cpu/arm/c1_Runtime1_arm.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/cpu/arm/c1_Runtime1_arm.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -546,9 +546,10 @@
         const Register result = R0;
         const Register klass  = R1;
 
-        if (UseTLAB && Universe::heap()->supports_inline_contig_alloc() && id != new_instance_id) {
-          // We come here when TLAB allocation failed.
-          // In this case we try to allocate directly from eden.
+        // If TLAB is disabled, see if there is support for inlining contiguous
+        // allocations.
+        // Otherwise, just go to the slow path.
+        if (!UseTLAB && Universe::heap()->supports_inline_contig_alloc() && id != new_instance_id) {
           Label slow_case, slow_case_no_pop;
 
           // Make sure the class is fully initialized
@@ -616,9 +617,10 @@
         const Register klass  = R1;
         const Register length = R2;
 
-        if (UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
-          // We come here when TLAB allocation failed.
-          // In this case we try to allocate directly from eden.
+        // If TLAB is disabled, see if there is support for inlining contiguous
+        // allocations.
+        // Otherwise, just go to the slow path.
+        if (!UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
           Label slow_case, slow_case_no_pop;
 
 #ifdef AARCH64
--- a/src/hotspot/cpu/arm/sharedRuntime_arm.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/cpu/arm/sharedRuntime_arm.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -513,6 +513,7 @@
     case T_ARRAY:
     case T_OBJECT:
     case T_ADDRESS:
+    case T_METADATA:
 #ifndef __ABI_HARD__
     case T_FLOAT:
 #endif // !__ABI_HARD__
--- a/src/hotspot/cpu/ppc/frame_ppc.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/cpu/ppc/frame_ppc.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -49,14 +49,134 @@
 
 bool frame::safe_for_sender(JavaThread *thread) {
   bool safe = false;
-  address   cursp = (address)sp();
-  address   curfp = (address)fp();
-  if ((cursp != NULL && curfp != NULL &&
-      (cursp <= thread->stack_base() && cursp >= thread->stack_base() - thread->stack_size())) &&
-      (curfp <= thread->stack_base() && curfp >= thread->stack_base() - thread->stack_size())) {
-      safe = true;
+  address sp = (address)_sp;
+  address fp = (address)_fp;
+  address unextended_sp = (address)_unextended_sp;
+
+  // Consider stack guards when trying to determine "safe" stack pointers
+  static size_t stack_guard_size = os::uses_stack_guard_pages() ?
+    JavaThread::stack_red_zone_size() + JavaThread::stack_yellow_reserved_zone_size() : 0;
+  size_t usable_stack_size = thread->stack_size() - stack_guard_size;
+
+  // sp must be within the usable part of the stack (not in guards)
+  bool sp_safe = (sp < thread->stack_base()) &&
+                 (sp >= thread->stack_base() - usable_stack_size);
+
+
+  if (!sp_safe) {
+    return false;
+  }
+
+  // Unextended sp must be within the stack and above or equal sp
+  bool unextended_sp_safe = (unextended_sp < thread->stack_base()) && (unextended_sp >= sp);
+
+  if (!unextended_sp_safe) {
+    return false;
   }
-  return safe;
+
+  // An fp must be within the stack and above (but not equal) sp.
+  bool fp_safe = (fp <= thread->stack_base()) &&  (fp > sp);
+  // an interpreter fp must be within the stack and above (but not equal) sp
+  bool fp_interp_safe = (fp <= thread->stack_base()) &&  (fp > sp) &&
+    ((fp - sp) >= (ijava_state_size + top_ijava_frame_abi_size));
+
+  // We know sp/unextended_sp are safe, only fp is questionable here
+
+  // If the current frame is known to the code cache then we can attempt to
+  // to construct the sender and do some validation of it. This goes a long way
+  // toward eliminating issues when we get in frame construction code
+
+  if (_cb != NULL ){
+    // Entry frame checks
+    if (is_entry_frame()) {
+      // An entry frame must have a valid fp.
+      return fp_safe && is_entry_frame_valid(thread);
+    }
+
+    // Now check if the frame is complete and the test is
+    // reliable. Unfortunately we can only check frame completeness for
+    // runtime stubs and nmethods. Other generic buffer blobs are more
+    // problematic so we just assume they are OK. Adapter blobs never have a
+    // complete frame and are never OK
+    if (!_cb->is_frame_complete_at(_pc)) {
+      if (_cb->is_compiled() || _cb->is_adapter_blob() || _cb->is_runtime_stub()) {
+        return false;
+      }
+    }
+
+    // Could just be some random pointer within the codeBlob.
+    if (!_cb->code_contains(_pc)) {
+      return false;
+    }
+
+    if (is_interpreted_frame() && !fp_interp_safe) {
+      return false;
+    }
+
+    abi_minframe* sender_abi = (abi_minframe*) fp;
+    intptr_t* sender_sp = (intptr_t*) fp;
+    address   sender_pc = (address) sender_abi->lr;;
+
+    // We must always be able to find a recognizable pc.
+    CodeBlob* sender_blob = CodeCache::find_blob_unsafe(sender_pc);
+    if (sender_blob == NULL) {
+      return false;
+    }
+
+    // Could be a zombie method
+    if (sender_blob->is_zombie() || sender_blob->is_unloaded()) {
+      return false;
+    }
+
+    // It should be safe to construct the sender though it might not be valid.
+
+    frame sender(sender_sp, sender_pc);
+
+    // Do we have a valid fp?
+    address sender_fp = (address) sender.fp();
+
+    // sender_fp must be within the stack and above (but not
+    // equal) current frame's fp.
+    if (sender_fp > thread->stack_base() || sender_fp <= fp) {
+        return false;
+    }
+
+    // If the potential sender is the interpreter then we can do some more checking.
+    if (Interpreter::contains(sender_pc)) {
+      return sender.is_interpreted_frame_valid(thread);
+    }
+
+    // Could just be some random pointer within the codeBlob.
+    if (!sender.cb()->code_contains(sender_pc)) {
+      return false;
+    }
+
+    // We should never be able to see an adapter if the current frame is something from code cache.
+    if (sender_blob->is_adapter_blob()) {
+      return false;
+    }
+
+    if (sender.is_entry_frame()) {
+      return sender.is_entry_frame_valid(thread);
+    }
+
+    // Frame size is always greater than zero. If the sender frame size is zero or less,
+    // something is really weird and we better give up.
+    if (sender_blob->frame_size() <= 0) {
+      return false;
+    }
+
+    return true;
+  }
+
+  // Must be native-compiled frame. Since sender will try and use fp to find
+  // linkages it must be safe
+
+  if (!fp_safe) {
+    return false;
+  }
+
+  return true;
 }
 
 bool frame::is_interpreted_frame() const  {
--- a/src/hotspot/cpu/sparc/c1_Runtime1_sparc.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/cpu/sparc/c1_Runtime1_sparc.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -407,8 +407,11 @@
           __ set_info("fast new_instance init check", dont_gc_arguments);
         }
 
+        // If TLAB is disabled, see if there is support for inlining contiguous
+        // allocations.
+        // Otherwise, just go to the slow path.
         if ((id == fast_new_instance_id || id == fast_new_instance_init_check_id) &&
-            UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
+            !UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
           Label slow_path;
           Register G1_obj_size = G1;
           Register G3_t1 = G3;
--- a/src/hotspot/cpu/x86/c1_Runtime1_x86.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/cpu/x86/c1_Runtime1_x86.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -1013,7 +1013,10 @@
           __ set_info("fast new_instance init check", dont_gc_arguments);
         }
 
-        if ((id == fast_new_instance_id || id == fast_new_instance_init_check_id) && UseTLAB
+        // If TLAB is disabled, see if there is support for inlining contiguous
+        // allocations.
+        // Otherwise, just go to the slow path.
+        if ((id == fast_new_instance_id || id == fast_new_instance_init_check_id) && !UseTLAB
             && Universe::heap()->supports_inline_contig_alloc()) {
           Label slow_path;
           Register obj_size = rcx;
@@ -1046,13 +1049,9 @@
           }
 #endif // ASSERT
 
-          // if we got here then the TLAB allocation failed, so try
-          // refilling the TLAB or allocating directly from eden.
-          Label retry_tlab, try_eden;
           const Register thread = NOT_LP64(rdi) LP64_ONLY(r15_thread);
           NOT_LP64(__ get_thread(thread));
 
-          __ bind(try_eden);
           // get the instance size (size is postive so movl is fine for 64bit)
           __ movl(obj_size, Address(klass, Klass::layout_helper_offset()));
 
@@ -1133,9 +1132,10 @@
         }
 #endif // ASSERT
 
-        // If we got here, the TLAB allocation failed, so try allocating from
-        // eden if inline contiguous allocations are supported.
-        if (UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
+        // If TLAB is disabled, see if there is support for inlining contiguous
+        // allocations.
+        // Otherwise, just go to the slow path.
+        if (!UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
           Register arr_size = rsi;
           Register t1       = rcx;  // must be rcx for use as shift count
           Register t2       = rdi;
--- a/src/hotspot/os/linux/os_linux.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/os/linux/os_linux.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -2826,9 +2826,10 @@
 
   // Map all node ids in which it is possible to allocate memory. Also nodes are
   // not always consecutively available, i.e. available from 0 to the highest
-  // node number.
+  // node number. If the nodes have been bound explicitly using numactl membind,
+  // then allocate memory from those nodes only.
   for (int node = 0; node <= highest_node_number; node++) {
-    if (Linux::isnode_in_configured_nodes((unsigned int)node)) {
+    if (Linux::isnode_in_bound_nodes((unsigned int)node)) {
       ids[i++] = node;
     }
   }
@@ -2929,6 +2930,8 @@
                                                libnuma_dlsym(handle, "numa_bitmask_isbitset")));
       set_numa_distance(CAST_TO_FN_PTR(numa_distance_func_t,
                                        libnuma_dlsym(handle, "numa_distance")));
+      set_numa_get_membind(CAST_TO_FN_PTR(numa_get_membind_func_t,
+                                          libnuma_v2_dlsym(handle, "numa_get_membind")));
 
       if (numa_available() != -1) {
         set_numa_all_nodes((unsigned long*)libnuma_dlsym(handle, "numa_all_nodes"));
@@ -2993,17 +2996,23 @@
   unsigned long *cpu_map = NEW_C_HEAP_ARRAY(unsigned long, cpu_map_size, mtInternal);
   for (size_t i = 0; i < node_num; i++) {
     // Check if node is configured (not a memory-less node). If it is not, find
-    // the closest configured node.
-    if (!isnode_in_configured_nodes(nindex_to_node()->at(i))) {
+    // the closest configured node. Check also if node is bound, i.e. it's allowed
+    // to allocate memory from the node. If it's not allowed, map cpus in that node
+    // to the closest node from which memory allocation is allowed.
+    if (!isnode_in_configured_nodes(nindex_to_node()->at(i)) ||
+        !isnode_in_bound_nodes(nindex_to_node()->at(i))) {
       closest_distance = INT_MAX;
       // Check distance from all remaining nodes in the system. Ignore distance
-      // from itself and from another non-configured node.
+      // from itself, from another non-configured node, and from another non-bound
+      // node.
       for (size_t m = 0; m < node_num; m++) {
-        if (m != i && isnode_in_configured_nodes(nindex_to_node()->at(m))) {
+        if (m != i &&
+            isnode_in_configured_nodes(nindex_to_node()->at(m)) &&
+            isnode_in_bound_nodes(nindex_to_node()->at(m))) {
           distance = numa_distance(nindex_to_node()->at(i), nindex_to_node()->at(m));
           // If a closest node is found, update. There is always at least one
-          // configured node in the system so there is always at least one node
-          // close.
+          // configured and bound node in the system so there is always at least
+          // one node close.
           if (distance != 0 && distance < closest_distance) {
             closest_distance = distance;
             closest_node = nindex_to_node()->at(m);
@@ -3053,6 +3062,7 @@
 os::Linux::numa_set_bind_policy_func_t os::Linux::_numa_set_bind_policy;
 os::Linux::numa_bitmask_isbitset_func_t os::Linux::_numa_bitmask_isbitset;
 os::Linux::numa_distance_func_t os::Linux::_numa_distance;
+os::Linux::numa_get_membind_func_t os::Linux::_numa_get_membind;
 unsigned long* os::Linux::_numa_all_nodes;
 struct bitmask* os::Linux::_numa_all_nodes_ptr;
 struct bitmask* os::Linux::_numa_nodes_ptr;
@@ -5034,8 +5044,9 @@
     if (!Linux::libnuma_init()) {
       UseNUMA = false;
     } else {
-      if ((Linux::numa_max_node() < 1)) {
-        // There's only one node(they start from 0), disable NUMA.
+      if ((Linux::numa_max_node() < 1) || Linux::isbound_to_single_node()) {
+        // If there's only one node (they start from 0) or if the process
+        // is bound explicitly to a single node using membind, disable NUMA.
         UseNUMA = false;
       }
     }
--- a/src/hotspot/os/linux/os_linux.hpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/os/linux/os_linux.hpp	Fri Jul 27 12:16:01 2018 +0100
@@ -228,6 +228,7 @@
   typedef int (*numa_tonode_memory_func_t)(void *start, size_t size, int node);
   typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long *nodemask);
   typedef void (*numa_interleave_memory_v2_func_t)(void *start, size_t size, struct bitmask* mask);
+  typedef struct bitmask* (*numa_get_membind_func_t)(void);
 
   typedef void (*numa_set_bind_policy_func_t)(int policy);
   typedef int (*numa_bitmask_isbitset_func_t)(struct bitmask *bmp, unsigned int n);
@@ -244,6 +245,7 @@
   static numa_set_bind_policy_func_t _numa_set_bind_policy;
   static numa_bitmask_isbitset_func_t _numa_bitmask_isbitset;
   static numa_distance_func_t _numa_distance;
+  static numa_get_membind_func_t _numa_get_membind;
   static unsigned long* _numa_all_nodes;
   static struct bitmask* _numa_all_nodes_ptr;
   static struct bitmask* _numa_nodes_ptr;
@@ -259,6 +261,7 @@
   static void set_numa_set_bind_policy(numa_set_bind_policy_func_t func) { _numa_set_bind_policy = func; }
   static void set_numa_bitmask_isbitset(numa_bitmask_isbitset_func_t func) { _numa_bitmask_isbitset = func; }
   static void set_numa_distance(numa_distance_func_t func) { _numa_distance = func; }
+  static void set_numa_get_membind(numa_get_membind_func_t func) { _numa_get_membind = func; }
   static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; }
   static void set_numa_all_nodes_ptr(struct bitmask **ptr) { _numa_all_nodes_ptr = (ptr == NULL ? NULL : *ptr); }
   static void set_numa_nodes_ptr(struct bitmask **ptr) { _numa_nodes_ptr = (ptr == NULL ? NULL : *ptr); }
@@ -299,7 +302,7 @@
     if (_numa_bitmask_isbitset != NULL && _numa_all_nodes_ptr != NULL) {
       return _numa_bitmask_isbitset(_numa_all_nodes_ptr, n);
     } else
-      return 0;
+      return false;
   }
   // Check if numa node exists in the system (including zero memory nodes).
   static bool isnode_in_existing_nodes(unsigned int n) {
@@ -318,7 +321,42 @@
       // substitute.
       return _numa_bitmask_isbitset(_numa_all_nodes_ptr, n);
     } else
-      return 0;
+      return false;
+  }
+  // Check if node is in bound node set.
+  static bool isnode_in_bound_nodes(int node) {
+    if (_numa_get_membind != NULL && _numa_bitmask_isbitset != NULL) {
+      return _numa_bitmask_isbitset(_numa_get_membind(), node);
+    } else {
+      return false;
+    }
+  }
+  // Check if bound to only one numa node.
+  // Returns true if bound to a single numa node, otherwise returns false.
+  static bool isbound_to_single_node() {
+    int nodes = 0;
+    struct bitmask* bmp = NULL;
+    unsigned int node = 0;
+    unsigned int highest_node_number = 0;
+
+    if (_numa_get_membind != NULL && _numa_max_node != NULL && _numa_bitmask_isbitset != NULL) {
+      bmp = _numa_get_membind();
+      highest_node_number = _numa_max_node();
+    } else {
+      return false;
+    }
+
+    for (node = 0; node <= highest_node_number; node++) {
+      if (_numa_bitmask_isbitset(bmp, node)) {
+        nodes++;
+      }
+    }
+
+    if (nodes == 1) {
+      return true;
+    } else {
+      return false;
+    }
   }
 };
 
--- a/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -42,16 +42,60 @@
 }
 
 bool JavaThread::pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava) {
-  ucontext_t* uc = (ucontext_t*) ucontext;
-  *fr_addr = frame((intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/],
-                   (address)uc->uc_mcontext.regs->nip);
-  return true;
+  assert(this->is_Java_thread(), "must be JavaThread");
+
+  // If we have a last_Java_frame, then we should use it even if
+  // isInJava == true.  It should be more reliable than ucontext info.
+  if (has_last_Java_frame() && frame_anchor()->walkable()) {
+    *fr_addr = pd_last_frame();
+    return true;
+  }
+
+  // At this point, we don't have a last_Java_frame, so
+  // we try to glean some information out of the ucontext
+  // if we were running Java code when SIGPROF came in.
+  if (isInJava) {
+    ucontext_t* uc = (ucontext_t*) ucontext;
+    frame ret_frame((intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/],
+                     (address)uc->uc_mcontext.regs->nip);
+
+    if (ret_frame.pc() == NULL) {
+      // ucontext wasn't useful
+      return false;
+    }
+
+    if (ret_frame.is_interpreted_frame()) {
+       frame::ijava_state* istate = ret_frame.get_ijava_state();
+       if (!((Method*)(istate->method))->is_metaspace_object()) {
+         return false;
+       }
+       uint64_t reg_bcp = uc->uc_mcontext.regs->gpr[14/*R14_bcp*/];
+       uint64_t istate_bcp = istate->bcp;
+       uint64_t code_start = (uint64_t)(((Method*)(istate->method))->code_base());
+       uint64_t code_end = (uint64_t)(((Method*)istate->method)->code_base() + ((Method*)istate->method)->code_size());
+       if (istate_bcp >= code_start && istate_bcp < code_end) {
+         // we have a valid bcp, don't touch it, do nothing
+       } else if (reg_bcp >= code_start && reg_bcp < code_end) {
+         istate->bcp = reg_bcp;
+      } else {
+         return false;
+       }
+    }
+    if (!ret_frame.safe_for_sender(this)) {
+      // nothing else to try if the frame isn't good
+      return false;
+    }
+    *fr_addr = ret_frame;
+    return true;
+  }
+  // nothing else to try
+  return false;
 }
 
 // Forte Analyzer AsyncGetCallTrace profiling support is not implemented on Linux/PPC.
 bool JavaThread::pd_get_top_frame_for_signal_handler(frame* fr_addr, void* ucontext, bool isInJava) {
-  Unimplemented();
-  return false;
+  assert(this->is_Java_thread(), "must be JavaThread");
+  return pd_get_top_frame_for_profiling(fr_addr, ucontext, isInJava);
 }
 
 void JavaThread::cache_global_variables() { }
--- a/src/hotspot/share/aot/aotCodeHeap.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/aot/aotCodeHeap.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -29,7 +29,7 @@
 #include "classfile/javaAssertions.hpp"
 #include "gc/shared/cardTable.hpp"
 #include "gc/shared/cardTableBarrierSet.hpp"
-#include "gc/shared/collectedHeap.hpp"
+#include "gc/shared/gcConfig.hpp"
 #include "gc/g1/heapRegion.hpp"
 #include "interpreter/abstractInterpreter.hpp"
 #include "jvmci/compilerRuntime.hpp"
@@ -160,10 +160,15 @@
   // Check configuration size
   verify_flag(_config->_config_size, AOTConfiguration::CONFIG_SIZE, "AOT configuration size");
 
+  // Check GC
+  CollectedHeap::Name gc = (CollectedHeap::Name)_config->_gc;
+  if (_valid && !GCConfig::is_gc_selected(gc)) {
+    handle_config_error("Shared file %s error: used '%s' is different from current '%s'", _name, GCConfig::hs_err_name(gc), GCConfig::hs_err_name());
+  }
+
   // Check flags
   verify_flag(_config->_useCompressedOops, UseCompressedOops, "UseCompressedOops");
   verify_flag(_config->_useCompressedClassPointers, UseCompressedClassPointers, "UseCompressedClassPointers");
-  verify_flag(_config->_useG1GC, UseG1GC, "UseG1GC");
   verify_flag(_config->_useTLAB, UseTLAB, "UseTLAB");
   verify_flag(_config->_useBiasedLocking, UseBiasedLocking, "UseBiasedLocking");
   verify_flag(_config->_objectAlignment, ObjectAlignmentInBytes, "ObjectAlignmentInBytes");
--- a/src/hotspot/share/aot/aotCodeHeap.hpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/aot/aotCodeHeap.hpp	Fri Jul 27 12:16:01 2018 +0100
@@ -92,8 +92,8 @@
 } AOTHeader;
 
 typedef struct {
-  enum { CONFIG_SIZE = 7 * jintSize + 12 };
-  // 7 int values
+  enum { CONFIG_SIZE = 8 * jintSize + 11 };
+  // 8 int values
   int _config_size;
   int _narrowOopShift;
   int _narrowKlassShift;
@@ -101,12 +101,12 @@
   int _fieldsAllocationStyle;
   int _objectAlignment;
   int _codeSegmentSize;
-  // byte[12] array map to boolean values here
+  int _gc;
+  // byte[11] array map to boolean values here
   bool _debug_VM;
   bool _useCompressedOops;
   bool _useCompressedClassPointers;
   bool _compactFields;
-  bool _useG1GC;
   bool _useTLAB;
   bool _useBiasedLocking;
   bool _tieredAOT;
--- a/src/hotspot/share/ci/ciObjectFactory.hpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/ci/ciObjectFactory.hpp	Fri Jul 27 12:16:01 2018 +0100
@@ -74,7 +74,7 @@
   ciMetadata* create_new_metadata(Metadata* o);
 
   static bool is_equal(NonPermObject* p, oop key) {
-    return p->object()->get_oop() == key;
+    return oopDesc::equals(p->object()->get_oop(), key);
   }
 
   NonPermObject* &find_non_perm(oop key);
--- a/src/hotspot/share/classfile/modules.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/classfile/modules.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -307,7 +307,7 @@
 
   oop loader = java_lang_Module::loader(module_handle());
   // Make sure loader is not the jdk.internal.reflect.DelegatingClassLoader.
-  if (loader != java_lang_ClassLoader::non_reflection_class_loader(loader)) {
+  if (!oopDesc::equals(loader, java_lang_ClassLoader::non_reflection_class_loader(loader))) {
     THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
               "Class loader is an invalid delegating class loader");
   }
--- a/src/hotspot/share/gc/cms/parNewGeneration.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/gc/cms/parNewGeneration.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -438,7 +438,7 @@
 }
 
 void ParScanThreadStateSet::print_taskqueue_stats() {
-  if (!log_develop_is_enabled(Trace, gc, task, stats)) {
+  if (!log_is_enabled(Trace, gc, task, stats)) {
     return;
   }
   Log(gc, task, stats) log;
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -3716,15 +3716,12 @@
 
 class G1CopyingKeepAliveClosure: public OopClosure {
   G1CollectedHeap*         _g1h;
-  OopClosure*              _copy_non_heap_obj_cl;
   G1ParScanThreadState*    _par_scan_state;
 
 public:
   G1CopyingKeepAliveClosure(G1CollectedHeap* g1h,
-                            OopClosure* non_heap_obj_cl,
                             G1ParScanThreadState* pss):
     _g1h(g1h),
-    _copy_non_heap_obj_cl(non_heap_obj_cl),
     _par_scan_state(pss)
   {}
 
@@ -3744,22 +3741,10 @@
       // If the referent has not been forwarded then we have to keep
       // it alive by policy. Therefore we have copy the referent.
       //
-      // If the reference field is in the G1 heap then we can push
-      // on the PSS queue. When the queue is drained (after each
-      // phase of reference processing) the object and it's followers
-      // will be copied, the reference field set to point to the
-      // new location, and the RSet updated. Otherwise we need to
-      // use the the non-heap or metadata closures directly to copy
-      // the referent object and update the pointer, while avoiding
-      // updating the RSet.
-
-      if (_g1h->is_in_g1_reserved(p)) {
-        _par_scan_state->push_on_queue(p);
-      } else {
-        assert(!Metaspace::contains((const void*)p),
-               "Unexpectedly found a pointer from metadata: " PTR_FORMAT, p2i(p));
-        _copy_non_heap_obj_cl->do_oop(p);
-      }
+      // When the queue is drained (after each phase of reference processing)
+      // the object and it's followers will be copied, the reference field set
+      // to point to the new location, and the RSet updated.
+      _par_scan_state->push_on_queue(p);
     }
   }
 };
@@ -3851,7 +3836,7 @@
     pss->set_ref_discoverer(NULL);
 
     // Keep alive closure.
-    G1CopyingKeepAliveClosure keep_alive(_g1h, pss->closures()->raw_strong_oops(), pss);
+    G1CopyingKeepAliveClosure keep_alive(_g1h, pss);
 
     // Complete GC closure
     G1ParEvacuateFollowersClosure drain_queue(_g1h, pss, _task_queues, _terminator);
@@ -3903,7 +3888,7 @@
   assert(pss->queue_is_empty(), "pre-condition");
 
   // Keep alive closure.
-  G1CopyingKeepAliveClosure keep_alive(this, pss->closures()->raw_strong_oops(), pss);
+  G1CopyingKeepAliveClosure keep_alive(this, pss);
 
   // Serial Complete GC closure
   G1STWDrainQueueClosure drain_queue(this, pss);
--- a/src/hotspot/share/gc/parallel/psPromotionManager.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/gc/parallel/psPromotionManager.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -158,7 +158,7 @@
 
 void
 PSPromotionManager::print_taskqueue_stats() {
-  if (!log_develop_is_enabled(Trace, gc, task, stats)) {
+  if (!log_is_enabled(Trace, gc, task, stats)) {
     return;
   }
   Log(gc, task, stats) log;
--- a/src/hotspot/share/gc/shared/gcConfig.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/gc/shared/gcConfig.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -226,6 +226,15 @@
   return "unknown gc";
 }
 
+const char* GCConfig::hs_err_name(CollectedHeap::Name name) {
+  FOR_EACH_SUPPORTED_GC(gc) {
+    if (gc->_name == name) {
+      return gc->_hs_err_name;
+    }
+  }
+  return "unknown gc";
+}
+
 GCArguments* GCConfig::arguments() {
   assert(_arguments != NULL, "Not initialized");
   return _arguments;
--- a/src/hotspot/share/gc/shared/gcConfig.hpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/gc/shared/gcConfig.hpp	Fri Jul 27 12:16:01 2018 +0100
@@ -50,6 +50,7 @@
   static bool is_gc_selected_ergonomically();
 
   static const char* hs_err_name();
+  static const char* hs_err_name(CollectedHeap::Name name);
 
   static GCArguments* arguments();
 };
--- a/src/hotspot/share/prims/jvmti.xsl	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/prims/jvmti.xsl	Fri Jul 27 12:16:01 2018 +0100
@@ -59,10 +59,10 @@
         </style>
   </head>
   <body>
-    <div class="centered">
+    <div class="centered" role="banner">
       <xsl:apply-templates select="title"/>
     </div>
-    <ul>
+    <ul role="navigation">
       <li>
         <a href="#SpecificationIntro"><b>Introduction</b></a>
         <ul>
@@ -167,6 +167,7 @@
       </li>
     </ul>
     <!-- end table of contents, begin body -->
+    <div role="main">
     <div class="sep"/>
     <hr class="thick"/>
     <div class="sep"/>
@@ -202,6 +203,7 @@
     </xsl:if>
     <p id="ChangeHistory"/>
       <xsl:apply-templates select="changehistory"/>
+    </div>
   </body>
 </html>
 </xsl:template>
--- a/src/hotspot/share/prims/whitebox.cpp	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/hotspot/share/prims/whitebox.cpp	Fri Jul 27 12:16:01 2018 +0100
@@ -1785,6 +1785,14 @@
 WB_END
 
 
+WB_ENTRY(jboolean, WB_IsJFRIncludedInVmBuild(JNIEnv* env))
+#if INCLUDE_JFR
+  return true;
+#else
+  return false;
+#endif // INCLUDE_JFR
+WB_END
+
 #if INCLUDE_CDS
 
 WB_ENTRY(jint, WB_GetOffsetForName(JNIEnv* env, jobject o, jstring name))
@@ -2163,6 +2171,7 @@
   {CC"getResolvedReferences", CC"(Ljava/lang/Class;)Ljava/lang/Object;", (void*)&WB_GetResolvedReferences},
   {CC"areOpenArchiveHeapObjectsMapped",   CC"()Z",    (void*)&WB_AreOpenArchiveHeapObjectsMapped},
   {CC"isCDSIncludedInVmBuild",            CC"()Z",    (void*)&WB_IsCDSIncludedInVmBuild },
+  {CC"isJFRIncludedInVmBuild",            CC"()Z",    (void*)&WB_IsJFRIncludedInVmBuild },
   {CC"isJavaHeapArchiveSupported",      CC"()Z",      (void*)&WB_IsJavaHeapArchiveSupported },
 
   {CC"clearInlineCaches0",  CC"(Z)V",                 (void*)&WB_ClearInlineCaches },
--- a/src/java.base/share/classes/com/sun/crypto/provider/RSACipher.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/com/sun/crypto/provider/RSACipher.java	Fri Jul 27 12:16:01 2018 +0100
@@ -332,7 +332,7 @@
         if ((inLen == 0) || (in == null)) {
             return;
         }
-        if (bufOfs + inLen > buffer.length) {
+        if (inLen > (buffer.length - bufOfs)) {
             bufOfs = buffer.length + 1;
             return;
         }
--- a/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,6 +42,7 @@
     public static final String MORE_INFO = "MORE_INFO";
     public static final String DUPLICATE_OPTION = "DUPLICATE_OPTION";
     public static final String BAD_SPEC = "BAD_SPEC";
+    public static final String DEPRECATED = "DEPRECATED";
 
     /*
      * The following are the output of 'pack200' and 'unpack200' commands.
@@ -89,7 +90,7 @@
                 "  -q\u3001--quiet                     \u5197\u9577\u6027\u3092\u6700\u4F4E\u30EC\u30D9\u30EB\u306B\u8A2D\u5B9A\u3057\u307E\u3059",
                 "  -l{F}\u3001--log-file={F}           \u6307\u5B9A\u306E\u30ED\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306FSystem.out ",
                 "                                  ('-'\u306E\u5834\u5408)\u306B\u51FA\u529B\u3057\u307E\u3059",
-                "  -?\u3001-h\u3001--help                  \u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059",
+                "  -?\u3001-h\u3001--help                  \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059",
                 "  -V\u3001--version                   \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059",
                 "  -J{X}                           \u30AA\u30D7\u30B7\u30E7\u30F3X\u3092\u57FA\u790E\u3068\u306A\u308BJava VM\u306B\u6E21\u3057\u307E\u3059",
                 "",
@@ -118,7 +119,7 @@
                 "  -q\u3001--quiet                   \u5197\u9577\u6027\u3092\u6700\u4F4E\u30EC\u30D9\u30EB\u306B\u8A2D\u5B9A\u3057\u307E\u3059",
                 "  -l{F}\u3001--log-file={F}           \u6307\u5B9A\u306E\u30ED\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F",
                 "                                  System.out ('-'\u306E\u5834\u5408)\u306B\u51FA\u529B\u3057\u307E\u3059",
-                "  -?\u3001-h\u3001--help                \u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059",
+                "  -?\u3001-h\u3001--help                \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059",
                 "  -V\u3001--version                 \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059",
                 "  -J{X}                         \u30AA\u30D7\u30B7\u30E7\u30F3X\u3092\u57FA\u790E\u3068\u306A\u308BJava VM\u306B\u6E21\u3057\u307E\u3059"
             }
@@ -126,6 +127,7 @@
         {MORE_INFO, "(\u8A73\u7D30\u306F\u3001{0} --help\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002)"}, // parameter 0:command name
         {DUPLICATE_OPTION, "\u91CD\u8907\u30AA\u30D7\u30B7\u30E7\u30F3: {0}"}, // parameter 0:option
         {BAD_SPEC, "{0}\u306E\u7121\u52B9\u306A\u4ED5\u69D8: {1}"}, // parameter 0:option;parameter 1:specifier
+        {DEPRECATED, "\n\u8B66\u544A: {0}\u30C4\u30FC\u30EB\u306F\u975E\u63A8\u5968\u3067\u3042\u308A\u3001\u4ECA\u5F8C\u306EJDK\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u4E88\u5B9A\u3067\u3059\u3002\n"} // parameter 0:command name
     };
 
     protected Object[][] getContents() {
--- a/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,6 +42,7 @@
     public static final String MORE_INFO = "MORE_INFO";
     public static final String DUPLICATE_OPTION = "DUPLICATE_OPTION";
     public static final String BAD_SPEC = "BAD_SPEC";
+    public static final String DEPRECATED = "DEPRECATED";
 
     /*
      * The following are the output of 'pack200' and 'unpack200' commands.
@@ -89,7 +90,7 @@
                 "  -q, --quiet                     \u5C06\u8BE6\u7EC6\u7A0B\u5EA6\u8BBE\u7F6E\u4E3A\u6700\u4F4E\u7EA7\u522B",
                 "  -l{F}, --log-file={F}           \u8F93\u51FA\u5230\u7ED9\u5B9A\u65E5\u5FD7\u6587\u4EF6, ",
                 "                                  \u6216\u5BF9\u4E8E System.out \u6307\u5B9A '-'",
-                "  -?, -h, --help                  \u8F93\u51FA\u6B64\u6D88\u606F",
+                "  -?, -h, --help                  \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F",
                 "  -V, --version                   \u8F93\u51FA\u7A0B\u5E8F\u7248\u672C",
                 "  -J{X}                           \u5C06\u9009\u9879 X \u4F20\u9012\u7ED9\u57FA\u7840 Java VM",
                 "",
@@ -118,7 +119,7 @@
                 "  -q, --quiet                     \u5C06\u8BE6\u7EC6\u7A0B\u5EA6\u8BBE\u7F6E\u4E3A\u6700\u4F4E\u7EA7\u522B",
                 "  -l{F}, --log-file={F}         \u8F93\u51FA\u5230\u7ED9\u5B9A\u65E5\u5FD7\u6587\u4EF6, \u6216",
                 "                                \u5BF9\u4E8E System.out \u6307\u5B9A '-'",
-                "  -?, -h, --help                \u8F93\u51FA\u6B64\u6D88\u606F",
+                "  -?, -h, --help                \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F",
                 "  -V, --version                 \u8F93\u51FA\u7A0B\u5E8F\u7248\u672C",
                 "  -J{X}                         \u5C06\u9009\u9879 X \u4F20\u9012\u7ED9\u57FA\u7840 Java VM"
             }
@@ -126,6 +127,7 @@
         {MORE_INFO, "(\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u8FD0\u884C {0} --help\u3002)"}, // parameter 0:command name
         {DUPLICATE_OPTION, "\u91CD\u590D\u7684\u9009\u9879: {0}"}, // parameter 0:option
         {BAD_SPEC, "{0}\u7684\u89C4\u8303\u9519\u8BEF: {1}"}, // parameter 0:option;parameter 1:specifier
+        {DEPRECATED, "\n\u8B66\u544A\uFF1A{0} \u5DE5\u5177\u5DF2\u8FC7\u65F6\uFF0C\u8BA1\u5212\u5728\u672A\u6765\u7684 JDK \u53D1\u884C\u7248\u4E2D\u5220\u9664\u3002\n"} // parameter 0:command name
     };
 
     protected Object[][] getContents() {
--- a/src/java.base/share/classes/java/lang/String.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/java/lang/String.java	Fri Jul 27 12:16:01 2018 +0100
@@ -2764,30 +2764,32 @@
     }
 
     /**
-     * Returns a stream of substrings extracted from this string
-     * partitioned by line terminators.
+     * Returns a stream of lines extracted from this string,
+     * separated by line terminators.
+     * <p>
+     * A <i>line terminator</i> is one of the following:
+     * a line feed character {@code "\n"} (U+000A),
+     * a carriage return character {@code "\r"} (U+000D),
+     * or a carriage return followed immediately by a line feed
+     * {@code "\r\n"} (U+000D U+000A).
      * <p>
-     * Line terminators recognized are line feed
-     * {@code "\n"} ({@code U+000A}),
-     * carriage return
-     * {@code "\r"} ({@code U+000D})
-     * and a carriage return followed immediately by a line feed
-     * {@code "\r\n"} ({@code U+000D U+000A}).
+     * A <i>line</i> is either a sequence of zero or more characters
+     * followed by a line terminator, or it is a sequence of one or
+     * more characters followed by the end of the string. A
+     * line does not include the line terminator.
      * <p>
-     * The stream returned by this method contains each line of
-     * this string that is terminated by a line terminator except that
-     * the last line can either be terminated by a line terminator or the
-     * end of the string.
-     * The lines in the stream are in the order in which
-     * they occur in this string and do not include the line terminators
-     * partitioning the lines.
+     * The stream returned by this method contains the lines from
+     * this string in the order in which they occur.
+     *
+     * @apiNote This definition of <i>line</i> implies that an empty
+     *          string has zero lines and that there is no empty line
+     *          following a line terminator at the end of a string.
      *
      * @implNote This method provides better performance than
      *           split("\R") by supplying elements lazily and
      *           by faster search of new line terminators.
      *
-     * @return  the stream of strings extracted from this string
-     *          partitioned by line terminators
+     * @return  the stream of lines extracted from this string
      *
      * @since 11
      */
--- a/src/java.base/share/classes/java/security/Signature.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/java/security/Signature.java	Fri Jul 27 12:16:01 2018 +0100
@@ -700,7 +700,7 @@
      * encoded or of the wrong type, if this signature algorithm is unable to
      * process the input data provided, etc.
      * @exception IllegalArgumentException if the {@code signature}
-     * byte array is null, or the {@code offset} or {@code length}
+     * byte array is {@code null}, or the {@code offset} or {@code length}
      * is less than 0, or the sum of the {@code offset} and
      * {@code length} is greater than the length of the
      * {@code signature} byte array.
@@ -897,14 +897,15 @@
     /**
      * Returns the parameters used with this signature object.
      *
-     * <p>The returned parameters may be the same that were used to initialize
-     * this signature, or may contain a combination of default and randomly
-     * generated parameter values used by the underlying signature
-     * implementation if this signature requires algorithm parameters but
-     * was not initialized with any.
+     * <p> If this signature has been previously initialized with parameters
+     * (by calling the {@code setParameter} method), this method returns
+     * the same parameters. If this signature has not been initialized with
+     * parameters, this method may return a combination of default and
+     * randomly generated parameter values if the underlying
+     * signature implementation supports it and can successfully generate
+     * them. Otherwise, {@code null} is returned.
      *
-     * @return the parameters used with this signature, or null if this
-     * signature does not use any parameters.
+     * @return the parameters used with this signature, or {@code null}
      *
      * @see #setParameter(AlgorithmParameterSpec)
      * @since 1.4
@@ -925,7 +926,7 @@
      *
      * @param param the string name of the parameter.
      *
-     * @return the object that represents the parameter value, or null if
+     * @return the object that represents the parameter value, or {@code null} if
      * there is none.
      *
      * @exception InvalidParameterException if {@code param} is an invalid
--- a/src/java.base/share/classes/java/security/SignatureSpi.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/java/security/SignatureSpi.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -326,18 +326,18 @@
     }
 
     /**
-     * <p>This method is overridden by providers to return the
-     * parameters used with this signature engine, or null
-     * if this signature engine does not use any parameters.
+     * <p>This method is overridden by providers to return the parameters
+     * used with this signature engine.
      *
-     * <p>The returned parameters may be the same that were used to initialize
-     * this signature engine, or may contain a combination of default and
-     * randomly generated parameter values used by the underlying signature
-     * implementation if this signature engine requires algorithm parameters
-     * but was not initialized with any.
+     * <p> If this signature engine has been previously initialized with
+     * parameters (by calling the {@code engineSetParameter} method), this
+     * method returns the same parameters. If this signature engine has not been
+     * initialized with parameters, this method may return a combination of
+     * default and randomly generated parameter values if the underlying
+     * signature implementation supports it and can successfully generate
+     * them. Otherwise, {@code null} is returned.
      *
-     * @return the parameters used with this signature engine, or null if this
-     * signature engine does not use any parameters
+     * @return the parameters used with this signature engine, or {@code null}
      *
      * @exception UnsupportedOperationException if this method is
      * not overridden by a provider
@@ -360,7 +360,7 @@
      *
      * @param param the string name of the parameter.
      *
-     * @return the object that represents the parameter value, or null if
+     * @return the object that represents the parameter value, or {@code null} if
      * there is none.
      *
      * @exception InvalidParameterException if {@code param} is an
--- a/src/java.base/share/classes/java/text/ChoiceFormat.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/java/text/ChoiceFormat.java	Fri Jul 27 12:16:01 2018 +0100
@@ -459,24 +459,30 @@
      * If {@code NaN}, returns same value.
      * <p>Used to make half-open intervals.
      *
+     * @implNote This is equivalent to calling
+     * {@link Math#nextUp(double) Math.nextUp(d)}
+     *
      * @param d the reference value
      * @return the least double value greather than {@code d}
      * @see #previousDouble
      */
     public static final double nextDouble (double d) {
-        return nextDouble(d,true);
+        return Math.nextUp(d);
     }
 
     /**
      * Finds the greatest double less than {@code d}.
      * If {@code NaN}, returns same value.
      *
+     * @implNote This is equivalent to calling
+     * {@link Math#nextDown(double) Math.nextDown(d)}
+     *
      * @param d the reference value
      * @return the greatest double value less than {@code d}
      * @see #nextDouble
      */
     public static final double previousDouble (double d) {
-        return nextDouble(d,false);
+        return Math.nextDown(d);
     }
 
     /**
@@ -548,33 +554,6 @@
      */
     private String[] choiceFormats;
 
-    /*
-    static final long SIGN          = 0x8000000000000000L;
-    static final long EXPONENT      = 0x7FF0000000000000L;
-    static final long SIGNIFICAND   = 0x000FFFFFFFFFFFFFL;
-
-    private static double nextDouble (double d, boolean positive) {
-        if (Double.isNaN(d) || Double.isInfinite(d)) {
-                return d;
-            }
-        long bits = Double.doubleToLongBits(d);
-        long significand = bits & SIGNIFICAND;
-        if (bits < 0) {
-            significand |= (SIGN | EXPONENT);
-        }
-        long exponent = bits & EXPONENT;
-        if (positive) {
-            significand += 1;
-            // FIXME fix overflow & underflow
-        } else {
-            significand -= 1;
-            // FIXME fix overflow & underflow
-        }
-        bits = exponent | (significand & ~EXPONENT);
-        return Double.longBitsToDouble(bits);
-    }
-    */
-
     static final long SIGN                = 0x8000000000000000L;
     static final long EXPONENT            = 0x7FF0000000000000L;
     static final long POSITIVEINFINITY    = 0x7FF0000000000000L;
@@ -585,11 +564,8 @@
      * {@code positive} is {@code false}).
      * If {@code NaN}, returns same value.
      *
-     * Does not affect floating-point flags,
-     * provided these member functions do not:
-     *          Double.longBitsToDouble(long)
-     *          Double.doubleToLongBits(double)
-     *          Double.isNaN(double)
+     * @implNote This is equivalent to calling
+     * {@code positive ? Math.nextUp(d) : Math.nextDown(d)}
      *
      * @param d        the reference value
      * @param positive {@code true} if the least double is desired;
@@ -597,44 +573,7 @@
      * @return the least or greater double value
      */
     public static double nextDouble (double d, boolean positive) {
-
-        /* filter out NaN's */
-        if (Double.isNaN(d)) {
-            return d;
-        }
-
-        /* zero's are also a special case */
-        if (d == 0.0) {
-            double smallestPositiveDouble = Double.longBitsToDouble(1L);
-            if (positive) {
-                return smallestPositiveDouble;
-            } else {
-                return -smallestPositiveDouble;
-            }
-        }
-
-        /* if entering here, d is a nonzero value */
-
-        /* hold all bits in a long for later use */
-        long bits = Double.doubleToLongBits(d);
-
-        /* strip off the sign bit */
-        long magnitude = bits & ~SIGN;
-
-        /* if next double away from zero, increase magnitude */
-        if ((bits > 0) == positive) {
-            if (magnitude != POSITIVEINFINITY) {
-                magnitude += 1;
-            }
-        }
-        /* else decrease magnitude */
-        else {
-            magnitude -= 1;
-        }
-
-        /* restore sign bit and return */
-        long signbit = bits & SIGN;
-        return Double.longBitsToDouble (magnitude | signbit);
+        return positive ? Math.nextUp(d) : Math.nextDown(d);
     }
 
     private static double[] doubleArraySize(double[] array) {
--- a/src/java.base/share/classes/java/util/WeakHashMap.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/java/util/WeakHashMap.java	Fri Jul 27 12:16:01 2018 +0100
@@ -252,7 +252,7 @@
      * @since   1.3
      */
     public WeakHashMap(Map<? extends K, ? extends V> m) {
-        this(Math.max((int) (m.size() / DEFAULT_LOAD_FACTOR) + 1,
+        this(Math.max((int) ((float)m.size() / DEFAULT_LOAD_FACTOR + 1.0F),
                 DEFAULT_INITIAL_CAPACITY),
              DEFAULT_LOAD_FACTOR);
         putAll(m);
--- a/src/java.base/share/classes/javax/crypto/Cipher.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/javax/crypto/Cipher.java	Fri Jul 27 12:16:01 2018 +0100
@@ -2739,7 +2739,7 @@
 
         // Input sanity check
         if ((src == null) || (offset < 0) || (len < 0)
-                || ((len + offset) > src.length)) {
+                || len > (src.length - offset)) {
             throw new IllegalArgumentException("Bad arguments");
         }
 
--- a/src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java	Fri Jul 27 12:16:01 2018 +0100
@@ -451,6 +451,9 @@
                     return true;
                 }
             }
+            if (Reflection.areNestMates(cl, superCl)) {
+                return true;
+            }
             return false;
         } else {
             // sanity check to ensure the parent is protected or public
--- a/src/java.base/share/classes/sun/launcher/resources/launcher_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/launcher/resources/launcher_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
 #
 
 # Translators please note do not translate the options themselves
-java.launcher.opt.header  =   \u4F7F\u7528\u65B9\u6CD5: {0} [options] <mainclass> [args...]\n           (\u30AF\u30E9\u30B9\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\n   \u307E\u305F\u306F  {0} [options] -jar <jarfile> [args...]\n           (jar\u30D5\u30A1\u30A4\u30EB\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\n   \u307E\u305F\u306F  {0} [options] -m <module>[/<mainclass>] [args...]\n       {0} [options] --module <module>[/<mainclass>] [args...]\n           (\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\n\n \u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9-jar <jarfile>\u3001-m\u307E\u305F\u306F--module\n <module>/<mainclass>\u306B\u7D9A\u304F\u5F15\u6570\u306F\u3001\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u3078\u306E\u5F15\u6570\u3068\u3057\u3066\u6E21\u3055\u308C\u307E\u3059\u3002\n\n \u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\n
+java.launcher.opt.header  =   \u4F7F\u7528\u65B9\u6CD5: {0} [options] <mainclass> [args...]\n           (\u30AF\u30E9\u30B9\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\n   \u307E\u305F\u306F  {0} [options] -jar <jarfile> [args...]\n           (jar\u30D5\u30A1\u30A4\u30EB\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\n   \u307E\u305F\u306F  {0} [options] -m <module>[/<mainclass>] [args...]\n       {0} [options] --module <module>[/<mainclass>] [args...]\n           (\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\n   \u307E\u305F\u306F  {0} [options] <sourcefile> [args]\n           (\u5358\u4E00\u306E\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u30FB\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u5B9F\u884C\u3059\u308B\u5834\u5408)\n\n \u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u3001\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3001-jar <jarfile>\u3001\n -m\u307E\u305F\u306F--module <module>/<mainclass>\u306B\u7D9A\u304F\u5F15\u6570\u306F\u3001\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u3078\u306E\u5F15\u6570\u3068\u3057\u3066\n \u6E21\u3055\u308C\u307E\u3059\u3002\n\n \u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\n
 
 java.launcher.opt.vmselect   =\    {0}\t  "{1}" VM\u3092\u9078\u629E\u3059\u308B\u5834\u5408\n
 java.launcher.opt.hotspot    =\    {0}\t  \u306F"{1}" VM\u306E\u30B7\u30CE\u30CB\u30E0\u3067\u3059  [\u975E\u63A8\u5968]\n
@@ -32,11 +32,11 @@
 # Translators please note do not translate the options themselves
 java.launcher.opt.footer = \    -cp <\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB\u306E\u30AF\u30E9\u30B9\u691C\u7D22\u30D1\u30B9>\n    -classpath <\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB\u306E\u30AF\u30E9\u30B9\u691C\u7D22\u30D1\u30B9>\n    --class-path <\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB\u306E\u30AF\u30E9\u30B9\u691C\u7D22\u30D1\u30B9>\n                  {0}\u533A\u5207\u308A\u30EA\u30B9\u30C8(\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u30A2\u30FC\u30AB\u30A4\u30D6\u3001\n                  ZIP\u30A2\u30FC\u30AB\u30A4\u30D6)\u3067\u3001\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u691C\u7D22\u7528\u3002\n    -p <module path>\n    --module-path <module path>...\n                  \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E{0}\u533A\u5207\u308A\u30EA\u30B9\u30C8\u3001\u5404\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\n                  \u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3059\u3002\n    --upgrade-module-path <module path>...\n                  \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E{0}\u533A\u5207\u308A\u30EA\u30B9\u30C8\u3001\u5404\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\n                  \u306F\u3001\u30E9\u30F3\u30BF\u30A4\u30E0\u30FB\u30A4\u30E1\u30FC\u30B8\u5185\u306E\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u53EF\u80FD\u306A\n                  \u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u7F6E\u63DB\u3059\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3059\n    --add-modules <module name>[,<module name>...]\n                  \u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u52A0\u3048\u3066\u89E3\u6C7A\u3059\u308B\u30EB\u30FC\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u3002\n                  <module name>\u306B\u306F\u6B21\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059: ALL-DEFAULT\u3001ALL-SYSTEM\u3001\n                  ALL-MODULE-PATH.\n    --list-modules\n                  \u53C2\u7167\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u30EA\u30B9\u30C8\u3057\u7D42\u4E86\u3057\u307E\u3059\n    -d <module name>\n    --describe-module <module name>\n                  \u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u8AAC\u660E\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --dry-run     VM\u3092\u4F5C\u6210\u3057\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\u304C\u3001\u30E1\u30A4\u30F3\u30FB\u30E1\u30BD\u30C3\u30C9\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093\u3002\n                  --dry-run\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u6B21\u306E\u691C\u8A3C\u306B\u5F79\u7ACB\u3064\u5834\u5408\u304C\u3042\u308A\u307E\u3059:\n                  \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30B7\u30B9\u30C6\u30E0\u69CB\u6210\u306A\u3069\u306E\u30B3\u30DE\u30F3\u30C9\u884C\u30AA\u30D7\u30B7\u30E7\u30F3\u3002\n    --validate-modules\n                  \u3059\u3079\u3066\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u691C\u8A3C\u3057\u7D42\u4E86\u3057\u307E\u3059\n                  --validate-modules\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u6B21\u306E\u691C\u7D22\u306B\u5F79\u7ACB\u3064\u5834\u5408\u304C\u3042\u308A\u307E\u3059:\n                  \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u4E0A\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3067\u306E\u7AF6\u5408\u304A\u3088\u3073\u305D\u306E\u4ED6\u306E\u30A8\u30E9\u30FC\u3002\n    -D<name>=<value>\n                  \u30B7\u30B9\u30C6\u30E0\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A2D\u5B9A\u3057\u307E\u3059\n    -verbose:[class|module|gc|jni]\n                  \u8A73\u7D30\u51FA\u529B\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\n    -version      \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u30A8\u30E9\u30FC\u30FB\u30B9\u30C8\u30EA\u30FC\u30E0\u306B\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059\n    --version     \
 \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u30B9\u30C8\u30EA\u30FC\u30E0\u306B\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059\n    -showversion  \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u30A8\u30E9\u30FC\u30FB\u30B9\u30C8\u30EA\u30FC\u30E0\u306B\u51FA\u529B\u3057\u3066\u7D9A\u884C\u3057\u307E\u3059\n    --show-version\n                  \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u30B9\u30C8\u30EA\u30FC\u30E0\u306B\u51FA\u529B\u3057\u3066\u7D9A\u884C\u3057\u307E\u3059\n    --show-module-resolution\n                  \u8D77\u52D5\u6642\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u89E3\u6C7A\u51FA\u529B\u3092\u8868\u793A\u3057\u307E\u3059\n    -? -h -help\n                  \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u30A8\u30E9\u30FC\u30FB\u30B9\u30C8\u30EA\u30FC\u30E0\u306B\u51FA\u529B\u3057\u307E\u3059\n    --help        \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u30B9\u30C8\u30EA\u30FC\u30E0\u306B\u51FA\u529B\u3057\u307E\u3059\n    -X            \u8FFD\u52A0\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30D8\u30EB\u30D7\u3092\u30A8\u30E9\u30FC\u30FB\u30B9\u30C8\u30EA\u30FC\u30E0\u306B\u51FA\u529B\u3057\u307E\u3059\n    --help-extra  \u8FFD\u52A0\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30D8\u30EB\u30D7\u3092\u51FA\u529B\u30B9\u30C8\u30EA\u30FC\u30E0\u306B\u51FA\u529B\u3057\u307E\u3059\n    -ea[:<packagename>...|:<classname>]\n    -enableassertions[:<packagename>...|:<classname>]\n                  \u6307\u5B9A\u3057\u305F\u7C92\u5EA6\u3067\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\n    -da[:<packagename>...|:<classname>]\n    -disableassertions[:<packagename>...|:<classname>]\n                  \u6307\u5B9A\u3057\u305F\u7C92\u5EA6\u3067\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\n    -esa | -enablesystemassertions\n                  \u30B7\u30B9\u30C6\u30E0\u30FB\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\n    -dsa | -disablesystemassertions\n                  \u30B7\u30B9\u30C6\u30E0\u30FB\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\n    -agentlib:<libname>[=<options>]\n                  \u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA<libname>\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002\u4F8B: -agentlib:jdwp\n                  -agentlib:jdwp=help\u3082\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n    -agentpath:<pathname>[=<options>]\n                  \u30D5\u30EB\u30D1\u30B9\u540D\u3092\u4F7F\u7528\u3057\u3066\u3001\u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\n    -javaagent:<jarpath>[=<options>]\n                  Java\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002java.lang.instrument\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n    -splash:<imagepath>\n                  \u6307\u5B9A\u3055\u308C\u305F\u30A4\u30E1\u30FC\u30B8\u3092\u542B\u3080\u30B9\u30D7\u30E9\u30C3\u30B7\u30E5\u753B\u9762\u3092\u8868\u793A\u3057\u307E\u3059\n                  HiDPI\u30B9\u30B1\u30FC\u30EB\u306E\u30A4\u30E1\u30FC\u30B8\u304C\u81EA\u52D5\u7684\u306B\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u4F7F\u7528\u3055\u308C\u307E\u3059\n                  (\u53EF\u80FD\u306A\u5834\u5408)\u3002\u30B9\u30B1\u30FC\u30EA\u30F3\u30B0\u3055\u308C\u306A\u3044\u30A4\u30E1\u30FC\u30B8\u306E\u30D5\u30A1\u30A4\u30EB\u540D(image.ext\u306A\u3069)\u3092\n                  \u5F15\u6570\u3068\u3057\u3066-splash\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u5FC5\u305A\u6E21\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n                  \
-\u6307\u5B9A\u3055\u308C\u305F\u6700\u3082\u9069\u5207\u306A\u30B9\u30B1\u30FC\u30EA\u30F3\u30B0\u6E08\u30A4\u30E1\u30FC\u30B8\u304C\u9078\u629E\u3055\u308C\u307E\u3059\n                  (\u81EA\u52D5\u7684)\u3002\n                  \u8A73\u7D30\u306F\u3001SplashScreen API\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n    @argument\u30D5\u30A1\u30A4\u30EB\n                  \u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u542B\u30801\u3064\u4EE5\u4E0A\u306E\u5F15\u6570\u30D5\u30A1\u30A4\u30EB\n    -disable-@files\n                  \u3055\u3089\u306A\u308B\u5F15\u6570\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\n\u9577\u3044\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B\u5834\u5408\u3001--<name>=<value>\u307E\u305F\u306F\n--<name> <value>\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\n
+\u6307\u5B9A\u3055\u308C\u305F\u6700\u3082\u9069\u5207\u306A\u30B9\u30B1\u30FC\u30EA\u30F3\u30B0\u6E08\u30A4\u30E1\u30FC\u30B8\u304C\u9078\u629E\u3055\u308C\u307E\u3059\n                  (\u81EA\u52D5\u7684)\u3002\n                  \u8A73\u7D30\u306F\u3001SplashScreen API\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n    @argument\u30D5\u30A1\u30A4\u30EB\n                  \u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u542B\u30801\u3064\u4EE5\u4E0A\u306E\u5F15\u6570\u30D5\u30A1\u30A4\u30EB\n    -disable-@files\n                  \u3055\u3089\u306A\u308B\u5F15\u6570\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\n    --enable-preview\n                  \u30AF\u30E9\u30B9\u3092\u3053\u306E\u30EA\u30EA\u30FC\u30B9\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u6A5F\u80FD\u306B\u4F9D\u5B58\u3055\u305B\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\n\u9577\u3044\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B\u5834\u5408\u3001--<name>=<value>\u307E\u305F\u306F\n--<name> <value>\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\n
 
 # Translators please note do not translate the options themselves
-java.launcher.X.usage=\n    -Xbatch           \u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u306E\u30B3\u30F3\u30D1\u30A4\u30EB\u3092\u7121\u52B9\u306B\u3059\u308B\n    -Xbootclasspath/a:<{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB>\n                      \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u306E\u6700\u5F8C\u306B\u8FFD\u52A0\u3059\u308B\n    -Xcheck:jni       JNI\u95A2\u6570\u306B\u5BFE\u3059\u308B\u8FFD\u52A0\u306E\u30C1\u30A7\u30C3\u30AF\u3092\u5B9F\u884C\u3059\u308B\n    -Xcomp            \u521D\u56DE\u547C\u51FA\u3057\u6642\u306B\u30E1\u30BD\u30C3\u30C9\u306E\u30B3\u30F3\u30D1\u30A4\u30EB\u3092\u5F37\u5236\u3059\u308B\n    -Xdebug           \u4E0B\u4F4D\u4E92\u63DB\u6027\u306E\u305F\u3081\u306B\u63D0\u4F9B\n    -Xdiag            \u8FFD\u52A0\u306E\u8A3A\u65AD\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3059\u308B\n    -Xfuture          \u5C06\u6765\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u898B\u8D8A\u3057\u3066\u3001\u6700\u3082\u53B3\u5BC6\u306A\u30C1\u30A7\u30C3\u30AF\u3092\u6709\u52B9\u306B\u3059\u308B\n    -Xint             \u30A4\u30F3\u30BF\u30D7\u30EA\u30BF\u30FB\u30E2\u30FC\u30C9\u306E\u5B9F\u884C\u306E\u307F\n    -Xinternalversion\n                      -version\u30AA\u30D7\u30B7\u30E7\u30F3\u3088\u308A\u8A73\u7D30\u306AJVM\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\n                       \u8868\u793A\u3059\u308B\n    -Xloggc:<file>    \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u4ED8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\u306BGC\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u30ED\u30B0\u3092\u8A18\u9332\u3059\u308B\n    -Xmixed           \u6DF7\u5408\u30E2\u30FC\u30C9\u306E\u5B9F\u884C(\u30C7\u30D5\u30A9\u30EB\u30C8)\n    -Xmn<size>        \u82E5\u3044\u4E16\u4EE3(\u30CA\u30FC\u30B5\u30EA)\u306E\u30D2\u30FC\u30D7\u306E\u521D\u671F\u304A\u3088\u3073\u6700\u5927\u30B5\u30A4\u30BA(\u30D0\u30A4\u30C8\u5358\u4F4D)\n                      \u3092\u8A2D\u5B9A\u3059\u308B\n    -Xms<size>        Java\u306E\u521D\u671F\u30D2\u30FC\u30D7\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n    -Xmx<size>        Java\u306E\u6700\u5927\u30D2\u30FC\u30D7\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n    -Xnoclassgc       \u30AF\u30E9\u30B9\u306E\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n    -Xrs              Java/VM\u306B\u3088\u308BOS\u30B7\u30B0\u30CA\u30EB\u306E\u4F7F\u7528\u3092\u524A\u6E1B\u3059\u308B(\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167)\n    -Xshare:auto      \u53EF\u80FD\u3067\u3042\u308C\u3070\u5171\u6709\u30AF\u30E9\u30B9\u306E\u30C7\u30FC\u30BF\u3092\u4F7F\u7528\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8)\n    -Xshare:off       \u5171\u6709\u30AF\u30E9\u30B9\u306E\u30C7\u30FC\u30BF\u3092\u4F7F\u7528\u3057\u3088\u3046\u3068\u3057\u306A\u3044\n    -Xshare:on        \u5171\u6709\u30AF\u30E9\u30B9\u30FB\u30C7\u30FC\u30BF\u306E\u4F7F\u7528\u3092\u5FC5\u9808\u306B\u3057\u3001\u3067\u304D\u306A\u3051\u308C\u3070\u5931\u6557\u3059\u308B\u3002\n    -XshowSettings    \u3059\u3079\u3066\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -XshowSettings:all\n                      \u3059\u3079\u3066\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -XshowSettings:locale\n                      \u3059\u3079\u3066\u306E\u30ED\u30B1\u30FC\u30EB\u95A2\u9023\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -XshowSettings:properties\n                      \u3059\u3079\u3066\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -XshowSettings:vm \u3059\u3079\u3066\u306EVM\u95A2\u9023\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -Xss<size>        \
-Java\u306E\u30B9\u30EC\u30C3\u30C9\u30FB\u30B9\u30BF\u30C3\u30AF\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n    -Xverify          \u30D0\u30A4\u30C8\u30B3\u30FC\u30C9\u691C\u8A3C\u6A5F\u80FD\u306E\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3059\u308B\n    --add-reads <module>=<target-module>(,<target-module>)*\n                      \u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F\u3001<module>\u3092\u66F4\u65B0\u3057\u3066<target-module>\n                      \u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059\u3002 \n                      <target-module>\u3092ALL-UNNAMED\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001\u3059\u3079\u3066\u306E\u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\n                      \u8AAD\u307F\u53D6\u308C\u307E\u3059\u3002\n    --add-exports <module>/<package>=<target-module>(,<target-module>)*\n                      \u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F\u3001<module>\u3092\u66F4\u65B0\u3057\u3066<package>\u3092<target-module>\u306B\n                      \u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\n                      <target-module>\u3092ALL-UNNAMED\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001\u3059\u3079\u3066\u306E\u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\n                      \u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3067\u304D\u307E\u3059\u3002\n    --add-opens <module>/<package>=<target-module>(,<target-module>)*\n                      \u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F\u3001<module>\u3092\u66F4\u65B0\u3057\u3066<package>\u3092\n                      <target-module>\u306B\u958B\u304D\u307E\u3059\u3002\n    --illegal-access=<value>\n                      \u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u5185\u306E\u30B3\u30FC\u30C9\u306B\u3088\u308B\u3001\u540D\u524D\u306E\u3042\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u5185\u306E\n                      \u30BF\u30A4\u30D7\u306E\u30E1\u30F3\u30D0\u30FC\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u8A31\u53EF\u307E\u305F\u306F\u62D2\u5426\u3057\u307E\u3059\u3002\n                      <value>\u306F"deny"\u3001"permit"\u3001"warn"\u3001"debug"\u306E\u3044\u305A\u308C\u304B\u3067\u3059\n                      \u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u5C06\u6765\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u307E\u3059\u3002\n    --limit-modules <module name>[,<module name>...]\n                      \u53C2\u7167\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u9818\u57DF\u3092\u5236\u9650\u3057\u307E\u3059\n    --patch-module <module>=<file>({0}<file>)*\n                      JAR\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30EA\u30BD\u30FC\u30B9\u3067\n                      \u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u307E\u305F\u306F\u62E1\u5F35\u3057\u307E\u3059\u3002\n    --disable-@files  \u3055\u3089\u306A\u308B\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\n\n\u3053\u306E\u8FFD\u52A0\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n
+java.launcher.X.usage=\n    -Xbatch           \u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u306E\u30B3\u30F3\u30D1\u30A4\u30EB\u3092\u7121\u52B9\u306B\u3059\u308B\n    -Xbootclasspath/a:<{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB>\n                      \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u306E\u6700\u5F8C\u306B\u8FFD\u52A0\u3059\u308B\n    -Xcheck:jni       JNI\u95A2\u6570\u306B\u5BFE\u3059\u308B\u8FFD\u52A0\u306E\u30C1\u30A7\u30C3\u30AF\u3092\u5B9F\u884C\u3059\u308B\n    -Xcomp            \u521D\u56DE\u547C\u51FA\u3057\u6642\u306B\u30E1\u30BD\u30C3\u30C9\u306E\u30B3\u30F3\u30D1\u30A4\u30EB\u3092\u5F37\u5236\u3059\u308B\n    -Xdebug           \u4E0B\u4F4D\u4E92\u63DB\u6027\u306E\u305F\u3081\u306B\u63D0\u4F9B\n    -Xdiag            \u8FFD\u52A0\u306E\u8A3A\u65AD\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3059\u308B\n    -Xfuture          \u5C06\u6765\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u898B\u8D8A\u3057\u3066\u3001\u6700\u3082\u53B3\u5BC6\u306A\u30C1\u30A7\u30C3\u30AF\u3092\u6709\u52B9\u306B\u3059\u308B\n    -Xint             \u30A4\u30F3\u30BF\u30D7\u30EA\u30BF\u30FB\u30E2\u30FC\u30C9\u306E\u5B9F\u884C\u306E\u307F\n    -Xinternalversion\n                      -version\u30AA\u30D7\u30B7\u30E7\u30F3\u3088\u308A\u8A73\u7D30\u306AJVM\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\n                      \u8868\u793A\u3059\u308B\n    -Xloggc:<file>    \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u4ED8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\u306BGC\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u30ED\u30B0\u3092\u8A18\u9332\u3059\u308B\n    -Xmixed           \u6DF7\u5408\u30E2\u30FC\u30C9\u306E\u5B9F\u884C(\u30C7\u30D5\u30A9\u30EB\u30C8)\n    -Xmn<size>        \u82E5\u3044\u4E16\u4EE3(\u30CA\u30FC\u30B5\u30EA)\u306E\u30D2\u30FC\u30D7\u306E\u521D\u671F\u304A\u3088\u3073\u6700\u5927\u30B5\u30A4\u30BA(\u30D0\u30A4\u30C8\u5358\u4F4D)\n                      \u3092\u8A2D\u5B9A\u3059\u308B\n    -Xms<size>        Java\u306E\u521D\u671F\u30D2\u30FC\u30D7\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n    -Xmx<size>        Java\u306E\u6700\u5927\u30D2\u30FC\u30D7\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n    -Xnoclassgc       \u30AF\u30E9\u30B9\u306E\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n    -Xrs              Java/VM\u306B\u3088\u308BOS\u30B7\u30B0\u30CA\u30EB\u306E\u4F7F\u7528\u3092\u524A\u6E1B\u3059\u308B(\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167)\n    -Xshare:auto      \u53EF\u80FD\u3067\u3042\u308C\u3070\u5171\u6709\u30AF\u30E9\u30B9\u306E\u30C7\u30FC\u30BF\u3092\u4F7F\u7528\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8)\n    -Xshare:off       \u5171\u6709\u30AF\u30E9\u30B9\u306E\u30C7\u30FC\u30BF\u3092\u4F7F\u7528\u3057\u3088\u3046\u3068\u3057\u306A\u3044\n    -Xshare:on        \u5171\u6709\u30AF\u30E9\u30B9\u30FB\u30C7\u30FC\u30BF\u306E\u4F7F\u7528\u3092\u5FC5\u9808\u306B\u3057\u3001\u3067\u304D\u306A\u3051\u308C\u3070\u5931\u6557\u3059\u308B\u3002\n    -XshowSettings    \u3059\u3079\u3066\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -XshowSettings:all\n                      \u3059\u3079\u3066\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -XshowSettings:locale\n                      \u3059\u3079\u3066\u306E\u30ED\u30B1\u30FC\u30EB\u95A2\u9023\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -XshowSettings:properties\n                      \u3059\u3079\u3066\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -XshowSettings:vm\n                      \u3059\u3079\u3066\u306EVM\u95A2\u9023\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -XshowSettings:system\n                      (Linux\u306E\u307F) \
+\u30DB\u30B9\u30C8\u30FB\u30B7\u30B9\u30C6\u30E0\u307E\u305F\u306F\u30B3\u30F3\u30C6\u30CA\u306E\n                      \u69CB\u6210\u3092\u8868\u793A\u3057\u3066\u7D9A\u884C\u3059\u308B\n    -Xss<size>        Java\u306E\u30B9\u30EC\u30C3\u30C9\u30FB\u30B9\u30BF\u30C3\u30AF\u30FB\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3059\u308B\n    -Xverify          \u30D0\u30A4\u30C8\u30B3\u30FC\u30C9\u691C\u8A3C\u6A5F\u80FD\u306E\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3059\u308B\n    --add-reads <module>=<target-module>(,<target-module>)*\n                      \u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F\u3001<module>\u3092\u66F4\u65B0\u3057\u3066<target-module>\n                      \u3092\u8AAD\u307F\u53D6\u308B\u3002 \n                       <target-module>\u3092ALL-UNNAMED\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001\u3059\u3079\u3066\u306E\u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\n                      \u8AAD\u307F\u53D6\u308C\u307E\u3059\u3002\n    --add-exports <module>/<package>=<target-module>(,<target-module>)*\n                      \u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F\u3001<module>\u3092\u66F4\u65B0\u3057\u3066<package>\u3092<target-module>\u306B\n                      \u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B\u3002\n                      <target-module>\u3092ALL-UNNAMED\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001\u3059\u3079\u3066\u306E\u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\n                      \u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3067\u304D\u307E\u3059\u3002\n    --add-opens <module>/<package>=<target-module>(,<target-module>)*\n                      \u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F\u3001<module>\u3092\u66F4\u65B0\u3057\u3066\n                      <package>\u3092<target-module>\u306B\u958B\u304F\u3002\n    --illegal-access=<value>\n                      \u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u5185\u306E\u30B3\u30FC\u30C9\u306B\u3088\u308B\u3001\u540D\u524D\u306E\u3042\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u5185\u306E\n                      \u30BF\u30A4\u30D7\u306E\u30E1\u30F3\u30D0\u30FC\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u8A31\u53EF\u307E\u305F\u306F\u62D2\u5426\u3059\u308B\u3002\n                      <value>\u306F"deny"\u3001"permit"\u3001"warn"\u3001"debug"\u306E\u3044\u305A\u308C\u304B\u3067\u3059\n                      \u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u5C06\u6765\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u307E\u3059\u3002\n    --limit-modules <module name>[,<module name>...]\n                      \u53C2\u7167\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u9818\u57DF\u3092\u5236\u9650\u3059\u308B\n    --patch-module <module>=<file>({0}<file>)*\n                      JAR\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30EA\u30BD\u30FC\u30B9\u3067\n                      \u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u307E\u305F\u306F\u62E1\u5F35\u3059\u308B\u3002\n    --disable-@files  \u3055\u3089\u306A\u308B\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u3092\u7121\u52B9\u306B\u3059\u308B\n    --source <version>\n                      \u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u30FB\u30E2\u30FC\u30C9\u3067\u30BD\u30FC\u30B9\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u8A2D\u5B9A\u3059\u308B\u3002\n\n\u3053\u308C\u3089\u306F\u8FFD\u52A0\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n
 
 # Translators please note do not translate the options themselves
 java.launcher.X.macosx.usage=\n\u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306FMac OS X\u56FA\u6709\u3067\u3059:\n    -XstartOnFirstThread\n                      main()\u30E1\u30BD\u30C3\u30C9\u3092\u6700\u521D(AppKit)\u306E\u30B9\u30EC\u30C3\u30C9\u3067\u5B9F\u884C\u3059\u308B\n    -Xdock:name=<application name>\n                      Dock\u306B\u8868\u793A\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u540D\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n    -Xdock:icon=<path to icon file>\n                      Dock\u306B\u8868\u793A\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A2\u30A4\u30B3\u30F3\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n\n
@@ -54,7 +54,7 @@
 java.launcher.jar.error4={0}\u5185\u306EJava\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306E\u30ED\u30FC\u30C9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
 java.launcher.init.error=\u521D\u671F\u5316\u30A8\u30E9\u30FC
 java.launcher.javafx.error1=\u30A8\u30E9\u30FC: JavaFX launchApplication\u30E1\u30BD\u30C3\u30C9\u306B\u8AA4\u3063\u305F\u30B7\u30B0\u30CD\u30C1\u30E3\u304C\u3042\u308A\u3001\nstatic\u3092\u5BA3\u8A00\u3057\u3066void\u578B\u306E\u5024\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
-java.launcher.module.error1=\u30E2\u30B8\u30E5\u30FC\u30EB{0}\u306BMainClass\u5C5E\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002-m <module>/<main-class>\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
+java.launcher.module.error1=\u30E2\u30B8\u30E5\u30FC\u30EB{0}\u306BModuleMainClass\u5C5E\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002-m <module>/<main-class>\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
 java.launcher.module.error2=\u30A8\u30E9\u30FC: \u30E2\u30B8\u30E5\u30FC\u30EB{1}\u306B\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u3089\u306A\u304B\u3063\u305F\u304B\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
 java.launcher.module.error3=\u30A8\u30E9\u30FC: \u30E2\u30B8\u30E5\u30FC\u30EB{1}\u306E\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9{0}\u3092\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093\n\t{2}
 java.launcher.module.error4={0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
--- a/src/java.base/share/classes/sun/launcher/resources/launcher_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/launcher/resources/launcher_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -24,18 +24,18 @@
 #
 
 # Translators please note do not translate the options themselves
-java.launcher.opt.header  =   \u7528\u6CD5: {0} [options] <\u4E3B\u7C7B> [args...]\n           (\u6267\u884C\u7C7B)\n   \u6216  {0} [options] -jar <jar \u6587\u4EF6> [args...]\n           (\u6267\u884C jar \u6587\u4EF6)\n   \u6216  {0} [options] -m <\u6A21\u5757>[/<\u4E3B\u7C7B>] [args...]\n       {0} [options] --module <\u6A21\u5757>[/<\u4E3B\u7C7B>] [args...]\n           (\u6267\u884C\u6A21\u5757\u4E2D\u7684\u4E3B\u7C7B)\n\n \u5C06\u4E3B\u7C7B, -jar <jar \u6587\u4EF6>, -m \u6216 --module\n <\u6A21\u5757>/<\u4E3B\u7C7B> \u540E\u7684\u53C2\u6570\u4F5C\u4E3A\u53C2\u6570\u4F20\u9012\u5230\u4E3B\u7C7B\u3002\n\n \u5176\u4E2D, \u9009\u9879\u5305\u62EC:\n\n
+java.launcher.opt.header  =   \u7528\u6CD5\uFF1A{0} [options] <\u4E3B\u7C7B> [args...]\n           \uFF08\u6267\u884C\u7C7B\uFF09\n   \u6216  {0} [options] -jar <jar \u6587\u4EF6> [args...]\n           \uFF08\u6267\u884C jar \u6587\u4EF6\uFF09\n   \u6216  {0} [options] -m <\u6A21\u5757>[/<\u4E3B\u7C7B>] [args...]\n       {0} [options] --module <\u6A21\u5757>[/<\u4E3B\u7C7B>] [args...]\n           \uFF08\u6267\u884C\u6A21\u5757\u4E2D\u7684\u4E3B\u7C7B\uFF09\n   \u6216  {0} [options] <\u6E90\u6587\u4EF6> [args]\n           \uFF08\u6267\u884C\u5355\u4E2A\u6E90\u6587\u4EF6\u7A0B\u5E8F\uFF09\n\n \u5C06\u4E3B\u7C7B\u3001\u6E90\u6587\u4EF6\u3001-jar <jar \u6587\u4EF6>\u3001-m \u6216\n --module <\u6A21\u5757>/<\u4E3B\u7C7B> \u540E\u7684\u53C2\u6570\u4F5C\u4E3A\u53C2\u6570\n \u4F20\u9012\u5230\u4E3B\u7C7B\u3002\n\n \u5176\u4E2D\uFF0C\u9009\u9879\u5305\u62EC\uFF1A\n\n
 
 java.launcher.opt.vmselect   =\    {0}\t  \u9009\u62E9 "{1}" VM\n
 java.launcher.opt.hotspot    =\    {0}\t  \u662F "{1}" VM \u7684\u540C\u4E49\u8BCD [\u5DF2\u8FC7\u65F6]\n
 
 # Translators please note do not translate the options themselves
 java.launcher.opt.footer = \    -cp <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n    -classpath <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n    --class-path <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n                  \u4F7F\u7528 {0} \u5206\u9694\u7684, \u7528\u4E8E\u641C\u7D22\u7C7B\u6587\u4EF6\u7684\u76EE\u5F55, JAR \u6863\u6848\n                  \u548C ZIP \u6863\u6848\u5217\u8868\u3002\n    -p <\u6A21\u5757\u8DEF\u5F84>\n    --module-path <\u6A21\u5757\u8DEF\u5F84>...\n                  \u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u5217\u8868, \u6BCF\u4E2A\u76EE\u5F55\n                  \u90FD\u662F\u4E00\u4E2A\u5305\u542B\u6A21\u5757\u7684\u76EE\u5F55\u3002\n    --upgrade-module-path <\u6A21\u5757\u8DEF\u5F84>...\n                  \u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u5217\u8868, \u6BCF\u4E2A\u76EE\u5F55\n                  \u90FD\u662F\u4E00\u4E2A\u5305\u542B\u6A21\u5757\u7684\u76EE\u5F55, \u8FD9\u4E9B\u6A21\u5757\n                  \u7528\u4E8E\u66FF\u6362\u8FD0\u884C\u65F6\u6620\u50CF\u4E2D\u7684\u53EF\u5347\u7EA7\u6A21\u5757\n    --add-modules <\u6A21\u5757\u540D\u79F0>[,<\u6A21\u5757\u540D\u79F0>...]\n                  \u9664\u4E86\u521D\u59CB\u6A21\u5757\u4E4B\u5916\u8981\u89E3\u6790\u7684\u6839\u6A21\u5757\u3002\n                  <\u6A21\u5757\u540D\u79F0> \u8FD8\u53EF\u4EE5\u4E3A ALL-DEFAULT, ALL-SYSTEM,\n                  ALL-MODULE-PATH.\n    --list-modules\n                  \u5217\u51FA\u53EF\u89C2\u5BDF\u6A21\u5757\u5E76\u9000\u51FA\n    -d <module name>\n    --describe-module <\u6A21\u5757\u540D\u79F0>\n                  \u63CF\u8FF0\u6A21\u5757\u5E76\u9000\u51FA\n    --dry-run     \u521B\u5EFA VM \u5E76\u52A0\u8F7D\u4E3B\u7C7B, \u4F46\u4E0D\u6267\u884C main \u65B9\u6CD5\u3002\n                  \u6B64 --dry-run \u9009\u9879\u5BF9\u4E8E\u9A8C\u8BC1\u8BF8\u5982\n                  \u6A21\u5757\u7CFB\u7EDF\u914D\u7F6E\u8FD9\u6837\u7684\u547D\u4EE4\u884C\u9009\u9879\u53EF\u80FD\u975E\u5E38\u6709\u7528\u3002\n    --validate-modules\n                  \u9A8C\u8BC1\u6240\u6709\u6A21\u5757\u5E76\u9000\u51FA\n                  --validate-modules \u9009\u9879\u5BF9\u4E8E\u67E5\u627E\n                  \u6A21\u5757\u8DEF\u5F84\u4E2D\u6A21\u5757\u7684\u51B2\u7A81\u53CA\u5176\u4ED6\u9519\u8BEF\u53EF\u80FD\u975E\u5E38\u6709\u7528\u3002\n    -D<\u540D\u79F0>=<\u503C>\n                  \u8BBE\u7F6E\u7CFB\u7EDF\u5C5E\u6027\n    -verbose:[class|module|gc|jni]\n                  \u542F\u7528\u8BE6\u7EC6\u8F93\u51FA\n    -version      \u5C06\u4EA7\u54C1\u7248\u672C\u8F93\u51FA\u5230\u9519\u8BEF\u6D41\u5E76\u9000\u51FA\n    --version     \u5C06\u4EA7\u54C1\u7248\u672C\u8F93\u51FA\u5230\u8F93\u51FA\u6D41\u5E76\u9000\u51FA\n    -showversion  \u5C06\u4EA7\u54C1\u7248\u672C\u8F93\u51FA\u5230\u9519\u8BEF\u6D41\u5E76\u7EE7\u7EED\n    --show-version\n                  \u5C06\u4EA7\u54C1\u7248\u672C\u8F93\u51FA\u5230\u8F93\u51FA\u6D41\u5E76\u7EE7\u7EED\n    --show-module-resolution\n                  \u5728\u542F\u52A8\u8FC7\u7A0B\u4E2D\u663E\u793A\u6A21\u5757\u89E3\u6790\u8F93\u51FA\n    -? -h -help\n                  \u5C06\u6B64\u5E2E\u52A9\u6D88\u606F\u8F93\u51FA\u5230\u9519\u8BEF\u6D41\n    --help        \u5C06\u6B64\u5E2E\u52A9\u6D88\u606F\u8F93\u51FA\u5230\u8F93\u51FA\u6D41\n    -X            \u5C06\u989D\u5916\u9009\u9879\u7684\u5E2E\u52A9\u8F93\u51FA\u5230\u9519\u8BEF\u6D41\n    --help-extra  \u5C06\u989D\u5916\u9009\u9879\u7684\u5E2E\u52A9\u8F93\u51FA\u5230\u8F93\u51FA\u6D41\n    -ea[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7C7B\u540D>]\n    -enableassertions[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7C7B\u540D>]\n                  \u6309\u6307\u5B9A\u7684\u7C92\u5EA6\u542F\u7528\u65AD\u8A00\n    -da[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7C7B\u540D>]\n    -disableassertions[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7C7B\u540D>]\n                  \u6309\u6307\u5B9A\u7684\u7C92\u5EA6\u7981\u7528\u65AD\u8A00\n    -esa \
-| -enablesystemassertions\n                  \u542F\u7528\u7CFB\u7EDF\u65AD\u8A00\n    -dsa | -disablesystemassertions\n                  \u7981\u7528\u7CFB\u7EDF\u65AD\u8A00\n    -agentlib:<\u5E93\u540D>[=<\u9009\u9879>]\n                  \u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93 <\u5E93\u540D>, \u4F8B\u5982 -agentlib:jdwp\n                  \u53E6\u8BF7\u53C2\u9605 -agentlib:jdwp=help\n    -agentpath:<\u8DEF\u5F84\u540D>[=<\u9009\u9879>]\n                  \u6309\u5B8C\u6574\u8DEF\u5F84\u540D\u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93\n    -javaagent:<jar \u8DEF\u5F84>[=<\u9009\u9879>]\n                  \u52A0\u8F7D Java \u7F16\u7A0B\u8BED\u8A00\u4EE3\u7406, \u8BF7\u53C2\u9605 java.lang.instrument\n    -splash:<\u56FE\u50CF\u8DEF\u5F84>\n                  \u4F7F\u7528\u6307\u5B9A\u7684\u56FE\u50CF\u663E\u793A\u542F\u52A8\u5C4F\u5E55\n                  \u81EA\u52A8\u652F\u6301\u548C\u4F7F\u7528 HiDPI \u7F29\u653E\u56FE\u50CF\n                  (\u5982\u679C\u53EF\u7528)\u3002\u5E94\u59CB\u7EC8\u5C06\u672A\u7F29\u653E\u7684\u56FE\u50CF\u6587\u4EF6\u540D (\u4F8B\u5982, image.ext)\n                  \u4F5C\u4E3A\u53C2\u6570\u4F20\u9012\u7ED9 -splash \u9009\u9879\u3002\n                  \u5C06\u81EA\u52A8\u9009\u53D6\u63D0\u4F9B\u7684\u6700\u5408\u9002\u7684\u7F29\u653E\n                  \u56FE\u50CF\u3002\n                  \u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605 SplashScreen API \u6587\u6863\n    @argument \u6587\u4EF6\n                  \u4E00\u4E2A\u6216\u591A\u4E2A\u5305\u542B\u9009\u9879\u7684\u53C2\u6570\u6587\u4EF6\n    -disable-@files\n                  \u963B\u6B62\u8FDB\u4E00\u6B65\u6269\u5C55\u53C2\u6570\u6587\u4EF6\n\u8981\u4E3A\u957F\u9009\u9879\u6307\u5B9A\u53C2\u6570, \u53EF\u4EE5\u4F7F\u7528 --<\u540D\u79F0>=<\u503C> \u6216\n--<\u540D\u79F0> <\u503C>\u3002\n
+| -enablesystemassertions\n                  \u542F\u7528\u7CFB\u7EDF\u65AD\u8A00\n    -dsa | -disablesystemassertions\n                  \u7981\u7528\u7CFB\u7EDF\u65AD\u8A00\n    -agentlib:<\u5E93\u540D>[=<\u9009\u9879>]\n                  \u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93 <\u5E93\u540D>, \u4F8B\u5982 -agentlib:jdwp\n                  \u53E6\u8BF7\u53C2\u9605 -agentlib:jdwp=help\n    -agentpath:<\u8DEF\u5F84\u540D>[=<\u9009\u9879>]\n                  \u6309\u5B8C\u6574\u8DEF\u5F84\u540D\u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93\n    -javaagent:<jar \u8DEF\u5F84>[=<\u9009\u9879>]\n                  \u52A0\u8F7D Java \u7F16\u7A0B\u8BED\u8A00\u4EE3\u7406, \u8BF7\u53C2\u9605 java.lang.instrument\n    -splash:<\u56FE\u50CF\u8DEF\u5F84>\n                  \u4F7F\u7528\u6307\u5B9A\u7684\u56FE\u50CF\u663E\u793A\u542F\u52A8\u5C4F\u5E55\n                  \u81EA\u52A8\u652F\u6301\u548C\u4F7F\u7528 HiDPI \u7F29\u653E\u56FE\u50CF\n                  (\u5982\u679C\u53EF\u7528)\u3002\u5E94\u59CB\u7EC8\u5C06\u672A\u7F29\u653E\u7684\u56FE\u50CF\u6587\u4EF6\u540D (\u4F8B\u5982, image.ext)\n                  \u4F5C\u4E3A\u53C2\u6570\u4F20\u9012\u7ED9 -splash \u9009\u9879\u3002\n                  \u5C06\u81EA\u52A8\u9009\u53D6\u63D0\u4F9B\u7684\u6700\u5408\u9002\u7684\u7F29\u653E\n                  \u56FE\u50CF\u3002\n                  \u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605 SplashScreen API \u6587\u6863\n    @argument \u6587\u4EF6\n                  \u4E00\u4E2A\u6216\u591A\u4E2A\u5305\u542B\u9009\u9879\u7684\u53C2\u6570\u6587\u4EF6\n    -disable-@files\n                  \u963B\u6B62\u8FDB\u4E00\u6B65\u6269\u5C55\u53C2\u6570\u6587\u4EF6\n    --enable-preview\n                  \u5141\u8BB8\u7C7B\u4F9D\u8D56\u4E8E\u6B64\u53D1\u884C\u7248\u7684\u9884\u89C8\u529F\u80FD\n\u8981\u4E3A\u957F\u9009\u9879\u6307\u5B9A\u53C2\u6570, \u53EF\u4EE5\u4F7F\u7528 --<\u540D\u79F0>=<\u503C> \u6216\n--<\u540D\u79F0> <\u503C>\u3002\n
 
 # Translators please note do not translate the options themselves
-java.launcher.X.usage=\n    -Xbatch           \u7981\u7528\u540E\u53F0\u7F16\u8BD1\n    -Xbootclasspath/a:<\u4EE5 {0} \u5206\u9694\u7684\u76EE\u5F55\u548C zip/jar \u6587\u4EF6>\n                      \u9644\u52A0\u5728\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u672B\u5C3E\n    -Xcheck:jni       \u5BF9 JNI \u51FD\u6570\u6267\u884C\u5176\u4ED6\u68C0\u67E5\n    -Xcomp            \u5728\u9996\u6B21\u8C03\u7528\u65F6\u5F3A\u5236\u7F16\u8BD1\u65B9\u6CD5\n    -Xdebug           \u4E3A\u5B9E\u73B0\u5411\u540E\u517C\u5BB9\u800C\u63D0\u4F9B\n    -Xdiag            \u663E\u793A\u9644\u52A0\u8BCA\u65AD\u6D88\u606F\n    -Xfuture          \u542F\u7528\u6700\u4E25\u683C\u7684\u68C0\u67E5, \u9884\u671F\u5C06\u6765\u7684\u9ED8\u8BA4\u503C\n    -Xint             \u4EC5\u89E3\u91CA\u6A21\u5F0F\u6267\u884C\n    -Xinternalversion\n                      \u663E\u793A\u6BD4 -version \u9009\u9879\u66F4\u8BE6\u7EC6\u7684 JVM\n                      \u7248\u672C\u4FE1\u606F\n    -Xloggc:<file>    \u5C06 GC \u72B6\u6001\u8BB0\u5F55\u5728\u6587\u4EF6\u4E2D (\u5E26\u65F6\u95F4\u6233)\n    -Xmixed           \u6DF7\u5408\u6A21\u5F0F\u6267\u884C (\u9ED8\u8BA4\u503C)\n    -Xmn<size>        \u4E3A\u5E74\u8F7B\u4EE3 (\u65B0\u751F\u4EE3) \u8BBE\u7F6E\u521D\u59CB\u548C\u6700\u5927\u5806\u5927\u5C0F\n                      (\u4EE5\u5B57\u8282\u4E3A\u5355\u4F4D)\n    -Xms<size>        \u8BBE\u7F6E\u521D\u59CB Java \u5806\u5927\u5C0F\n    -Xmx<size>        \u8BBE\u7F6E\u6700\u5927 Java \u5806\u5927\u5C0F\n    -Xnoclassgc       \u7981\u7528\u7C7B\u5783\u573E\u6536\u96C6\n    -Xrs              \u51CF\u5C11 Java/VM \u5BF9\u64CD\u4F5C\u7CFB\u7EDF\u4FE1\u53F7\u7684\u4F7F\u7528 (\u8BF7\u53C2\u9605\u6587\u6863)\n    -Xshare:auto      \u5728\u53EF\u80FD\u7684\u60C5\u51B5\u4E0B\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E (\u9ED8\u8BA4\u503C)\n    -Xshare:off       \u4E0D\u5C1D\u8BD5\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E\n    -Xshare:on        \u8981\u6C42\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E, \u5426\u5219\u5C06\u5931\u8D25\u3002\n    -XshowSettings    \u663E\u793A\u6240\u6709\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n    -XshowSettings:all\n                      \u663E\u793A\u6240\u6709\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n    -XshowSettings:locale\n                      \u663E\u793A\u6240\u6709\u4E0E\u533A\u57DF\u8BBE\u7F6E\u76F8\u5173\u7684\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n    -XshowSettings:properties\n                      \u663E\u793A\u6240\u6709\u5C5E\u6027\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n    -XshowSettings:vm \u663E\u793A\u6240\u6709\u4E0E vm \u76F8\u5173\u7684\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n    -Xss<size>        \u8BBE\u7F6E Java \u7EBF\u7A0B\u5806\u6808\u5927\u5C0F\n    -Xverify          \u8BBE\u7F6E\u5B57\u8282\u7801\u9A8C\u8BC1\u5668\u7684\u6A21\u5F0F\n    --add-reads <\u6A21\u5757>=<\u76EE\u6807\u6A21\u5757>(,<\u76EE\u6807\u6A21\u5757>)*\n                      \u66F4\u65B0 <\u6A21\u5757> \u4EE5\u8BFB\u53D6 <\u76EE\u6807\u6A21\u5757>, \u800C\u65E0\u8BBA\n                      \u6A21\u5757\u58F0\u660E\u5982\u4F55\u3002\n                      <\u76EE\u6807\u6A21\u5757> \u53EF\u4EE5\u662F ALL-UNNAMED \u4EE5\u8BFB\u53D6\u6240\u6709\u672A\u547D\u540D\n                      \u6A21\u5757\u3002\n    --add-exports <\u6A21\u5757>/<\u7A0B\u5E8F\u5305>=<\u76EE\u6807\u6A21\u5757>(,<\u76EE\u6807\u6A21\u5757>)*\n                      \u66F4\u65B0 <\u6A21\u5757> \u4EE5\u5C06 <\u7A0B\u5E8F\u5305> \u5BFC\u51FA\u5230 <\u76EE\u6807\u6A21\u5757>,\n                      \u800C\u65E0\u8BBA\u6A21\u5757\u58F0\u660E\u5982\u4F55\u3002\n                      <\u76EE\u6807\u6A21\u5757> \u53EF\u4EE5\u662F ALL-UNNAMED \u4EE5\u5BFC\u51FA\u5230\u6240\u6709\n                      \u672A\u547D\u540D\u6A21\u5757\u3002\n    --add-opens <\u6A21\u5757>/<\u7A0B\u5E8F\u5305>=<\u76EE\u6807\u6A21\u5757>(,<\u76EE\u6807\u6A21\u5757>)*\n                      \u66F4\u65B0 <\u6A21\u5757> \u4EE5\u5728 <\u76EE\u6807\u6A21\u5757> \u4E2D\u6253\u5F00\n                      <\u7A0B\u5E8F\u5305>, \
-\u800C\u65E0\u8BBA\u6A21\u5757\u58F0\u660E\u5982\u4F55\u3002\n    --illegal-access=<\u503C>\n                      \u5141\u8BB8\u6216\u62D2\u7EDD\u901A\u8FC7\u672A\u547D\u540D\u6A21\u5757\u4E2D\u7684\u4EE3\u7801\u5BF9\u547D\u540D\u6A21\u5757\u4E2D\u7684\n                      \u7C7B\u578B\u6210\u5458\u8FDB\u884C\u8BBF\u95EE\u3002\n                      <\u503C> \u4E3A "deny", "permit", "warn" \u6216 "debug" \u4E4B\u4E00\n                      \u6B64\u9009\u9879\u5C06\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664\u3002\n    --limit-modules <\u6A21\u5757\u540D>[,<\u6A21\u5757\u540D>...]\n                      \u9650\u5236\u53EF\u89C2\u5BDF\u6A21\u5757\u7684\u9886\u57DF\n    --patch-module <\u6A21\u5757>=<\u6587\u4EF6>({0}<\u6587\u4EF6>)*\n                      \u4F7F\u7528 JAR \u6587\u4EF6\u6216\u76EE\u5F55\u4E2D\u7684\u7C7B\u548C\u8D44\u6E90\n                      \u8986\u76D6\u6216\u589E\u5F3A\u6A21\u5757\u3002\n    --disable-@files \u7981\u6B62\u8FDB\u4E00\u6B65\u6269\u5C55\u53C2\u6570\u6587\u4EF6\n\n\u8FD9\u4E9B\u989D\u5916\u9009\u9879\u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
+java.launcher.X.usage=\n    -Xbatch           \u7981\u7528\u540E\u53F0\u7F16\u8BD1\n    -Xbootclasspath/a:<\u4EE5 {0} \u5206\u9694\u7684\u76EE\u5F55\u548C zip/jar \u6587\u4EF6>\n                      \u9644\u52A0\u5728\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u672B\u5C3E\n    -Xcheck:jni       \u5BF9 JNI \u51FD\u6570\u6267\u884C\u5176\u4ED6\u68C0\u67E5\n    -Xcomp            \u5728\u9996\u6B21\u8C03\u7528\u65F6\u5F3A\u5236\u7F16\u8BD1\u65B9\u6CD5\n    -Xdebug           \u4E3A\u5B9E\u73B0\u5411\u540E\u517C\u5BB9\u800C\u63D0\u4F9B\n    -Xdiag            \u663E\u793A\u9644\u52A0\u8BCA\u65AD\u6D88\u606F\n    -Xfuture          \u542F\u7528\u6700\u4E25\u683C\u7684\u68C0\u67E5\uFF0C\u9884\u671F\u5C06\u6765\u7684\u9ED8\u8BA4\u503C\n    -Xint             \u4EC5\u89E3\u91CA\u6A21\u5F0F\u6267\u884C\n    -Xinternalversion\n                      \u663E\u793A\u6BD4 -version \u9009\u9879\u66F4\u8BE6\u7EC6\u7684 JVM\n                      \u7248\u672C\u4FE1\u606F\n    -Xloggc:<\u6587\u4EF6>    \u5C06 GC \u72B6\u6001\u8BB0\u5F55\u5728\u6587\u4EF6\u4E2D\uFF08\u5E26\u65F6\u95F4\u6233\uFF09\n    -Xmixed           \u6DF7\u5408\u6A21\u5F0F\u6267\u884C\uFF08\u9ED8\u8BA4\u503C\uFF09\n    -Xmn<\u5927\u5C0F>        \u4E3A\u5E74\u8F7B\u4EE3\uFF08\u65B0\u751F\u4EE3\uFF09\u8BBE\u7F6E\u521D\u59CB\u548C\u6700\u5927\u5806\u5927\u5C0F\n                      \uFF08\u4EE5\u5B57\u8282\u4E3A\u5355\u4F4D\uFF09\n    -Xms<\u5927\u5C0F>        \u8BBE\u7F6E\u521D\u59CB Java \u5806\u5927\u5C0F\n    -Xmx<\u5927\u5C0F>        \u8BBE\u7F6E\u6700\u5927 Java \u5806\u5927\u5C0F\n    -Xnoclassgc       \u7981\u7528\u7C7B\u5783\u573E\u6536\u96C6\n    -Xrs              \u51CF\u5C11 Java/VM \u5BF9\u64CD\u4F5C\u7CFB\u7EDF\u4FE1\u53F7\u7684\u4F7F\u7528\uFF08\u8BF7\u53C2\u89C1\u6587\u6863\uFF09\n    -Xshare:auto      \u5728\u53EF\u80FD\u7684\u60C5\u51B5\u4E0B\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E\uFF08\u9ED8\u8BA4\u503C\uFF09\n    -Xshare:off       \u4E0D\u5C1D\u8BD5\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E\n    -Xshare:on        \u8981\u6C42\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E\uFF0C\u5426\u5219\u5C06\u5931\u8D25\u3002\n    -XshowSettings    \u663E\u793A\u6240\u6709\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n    -XshowSettings:all\n                      \u663E\u793A\u6240\u6709\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n    -XshowSettings:locale\n                      \u663E\u793A\u6240\u6709\u4E0E\u533A\u57DF\u8BBE\u7F6E\u76F8\u5173\u7684\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n    -XshowSettings:properties\n                      \u663E\u793A\u6240\u6709\u5C5E\u6027\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n    -XshowSettings:vm\n                      \u663E\u793A\u6240\u6709\u4E0E vm \u76F8\u5173\u7684\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n    -XshowSettings:system\n                      \uFF08\u4EC5 Linux\uFF09\u663E\u793A\u4E3B\u673A\u7CFB\u7EDF\u6216\u5BB9\u5668\n                      \u914D\u7F6E\u5E76\u7EE7\u7EED\n    -Xss<\u5927\u5C0F>        \u8BBE\u7F6E Java \u7EBF\u7A0B\u5806\u6808\u5927\u5C0F\n    -Xverify          \u8BBE\u7F6E\u5B57\u8282\u7801\u9A8C\u8BC1\u5668\u7684\u6A21\u5F0F\n    --add-reads <\u6A21\u5757>=<\u76EE\u6807\u6A21\u5757>(,<\u76EE\u6807\u6A21\u5757>)*\n                      \u66F4\u65B0 <\u6A21\u5757> \u4EE5\u8BFB\u53D6 <\u76EE\u6807\u6A21\u5757>\uFF0C\u800C\u65E0\u8BBA\n                      \u6A21\u5757\u58F0\u660E\u5982\u4F55\u3002\n                      <\u76EE\u6807\u6A21\u5757> \u53EF\u4EE5\u662F ALL-UNNAMED \u4EE5\u8BFB\u53D6\u6240\u6709\u672A\u547D\u540D\n                      \u6A21\u5757\u3002\n    --add-exports <\u6A21\u5757>/<\u7A0B\u5E8F\u5305>=<\u76EE\u6807\u6A21\u5757>(,<\u76EE\u6807\u6A21\u5757>)*\n                      \u66F4\u65B0 <\u6A21\u5757> \u4EE5\u5C06 <\u7A0B\u5E8F\u5305> \u5BFC\u51FA\u5230 <\u76EE\u6807\u6A21\u5757>\uFF0C\n                      \u800C\u65E0\u8BBA\u6A21\u5757\u58F0\u660E\u5982\u4F55\u3002\n                      <\u76EE\u6807\u6A21\u5757> \u53EF\u4EE5\u662F ALL-UNNAMED \u4EE5\u5BFC\u51FA\u5230\u6240\u6709\n                      \
+\u672A\u547D\u540D\u6A21\u5757\u3002\n    --add-opens <\u6A21\u5757>/<\u7A0B\u5E8F\u5305>=<\u76EE\u6807\u6A21\u5757>(,<\u76EE\u6807\u6A21\u5757>)*\n                      \u66F4\u65B0 <\u6A21\u5757> \u4EE5\u5728 <\u76EE\u6807\u6A21\u5757> \u4E2D\u6253\u5F00\n                      <\u7A0B\u5E8F\u5305>\uFF0C\u800C\u65E0\u8BBA\u6A21\u5757\u58F0\u660E\u5982\u4F55\u3002\n    --illegal-access=<\u503C>\n                      \u5141\u8BB8\u6216\u62D2\u7EDD\u901A\u8FC7\u672A\u547D\u540D\u6A21\u5757\u4E2D\u7684\u4EE3\u7801\u5BF9\u547D\u540D\u6A21\u5757\u4E2D\u7684\n                      \u7C7B\u578B\u6210\u5458\u8FDB\u884C\u8BBF\u95EE\u3002\n                      <\u503C> \u4E3A "deny"\u3001"permit"\u3001"warn" \u6216 "debug" \u4E4B\u4E00\n                      \u6B64\u9009\u9879\u5C06\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664\u3002\n    --limit-modules <\u6A21\u5757\u540D>[,<\u6A21\u5757\u540D>...]\n                      \u9650\u5236\u53EF\u89C2\u5BDF\u6A21\u5757\u7684\u9886\u57DF\n    --patch-module <\u6A21\u5757>=<\u6587\u4EF6>({0}<\u6587\u4EF6>)*\n                      \u4F7F\u7528 JAR \u6587\u4EF6\u6216\u76EE\u5F55\u4E2D\u7684\u7C7B\u548C\u8D44\u6E90\n                      \u8986\u76D6\u6216\u589E\u5F3A\u6A21\u5757\u3002\n    --disable-@files  \u7981\u6B62\u8FDB\u4E00\u6B65\u6269\u5C55\u53C2\u6570\u6587\u4EF6\n    --source <\u7248\u672C>\n                      \u8BBE\u7F6E\u6E90\u6587\u4EF6\u6A21\u5F0F\u4E2D\u6E90\u7684\u7248\u672C\u3002\n\n\u8FD9\u4E9B\u989D\u5916\u9009\u9879\u5982\u6709\u66F4\u6539\uFF0C\u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
 
 # Translators please note do not translate the options themselves
 java.launcher.X.macosx.usage=\n\u4EE5\u4E0B\u9009\u9879\u4E3A Mac OS X \u7279\u5B9A\u7684\u9009\u9879:\n    -XstartOnFirstThread\n                      \u5728\u7B2C\u4E00\u4E2A (AppKit) \u7EBF\u7A0B\u4E0A\u8FD0\u884C main() \u65B9\u6CD5\n    -Xdock:name=<\u5E94\u7528\u7A0B\u5E8F\u540D\u79F0>\n                      \u8986\u76D6\u505C\u9760\u680F\u4E2D\u663E\u793A\u7684\u9ED8\u8BA4\u5E94\u7528\u7A0B\u5E8F\u540D\u79F0\n    -Xdock:icon=<\u56FE\u6807\u6587\u4EF6\u7684\u8DEF\u5F84>\n                      \u8986\u76D6\u505C\u9760\u680F\u4E2D\u663E\u793A\u7684\u9ED8\u8BA4\u56FE\u6807\n\n
@@ -53,7 +53,7 @@
 java.launcher.jar.error4=\u5728 {0} \u4E2D\u52A0\u8F7D Java \u4EE3\u7406\u65F6\u51FA\u9519
 java.launcher.init.error=\u521D\u59CB\u5316\u9519\u8BEF
 java.launcher.javafx.error1=\u9519\u8BEF: JavaFX launchApplication \u65B9\u6CD5\u5177\u6709\u9519\u8BEF\u7684\u7B7E\u540D, \u5FC5\u987B\n\u5C06\u65B9\u6CD5\u58F0\u660E\u4E3A\u9759\u6001\u65B9\u6CD5\u5E76\u8FD4\u56DE\u7A7A\u7C7B\u578B\u7684\u503C
-java.launcher.module.error1=\u6A21\u5757 {0} \u4E0D\u5177\u6709 MainClass \u5C5E\u6027, \u8BF7\u4F7F\u7528 -m <module>/<main-class>
+java.launcher.module.error1=\u6A21\u5757 {0} \u4E0D\u5177\u6709 ModuleMainClass \u5C5E\u6027\uFF0C\u8BF7\u4F7F\u7528 -m <\u6A21\u5757>/<\u4E3B\u7C7B>
 java.launcher.module.error2=\u9519\u8BEF: \u5728\u6A21\u5757 {1} \u4E2D\u627E\u4E0D\u5230\u6216\u65E0\u6CD5\u52A0\u8F7D\u4E3B\u7C7B {0}
 java.launcher.module.error3=\u9519\u8BEF: \u65E0\u6CD5\u5C06\u4E3B\u7C7B {0} \u52A0\u8F7D\u5230\u6A21\u5757 {1} \u4E2D\n\t{2}
 java.launcher.module.error4=\u627E\u4E0D\u5230{0}
--- a/src/java.base/share/classes/sun/net/util/SocketExceptions.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/net/util/SocketExceptions.java	Fri Jul 27 12:16:01 2018 +0100
@@ -44,7 +44,7 @@
      * The property value is a comma separated list of
      * case insignificant category names.
      */
-    private static final String enhancedTextPropname = "jdk.net.includeInExceptions";
+    private static final String enhancedTextPropname = "jdk.includeInExceptions";
 
     private static final boolean enhancedExceptionText = initTextProp();
 
--- a/src/java.base/share/classes/sun/security/provider/DSA.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/security/provider/DSA.java	Fri Jul 27 12:16:01 2018 +0100
@@ -588,7 +588,7 @@
                 }
             }
             protected void engineUpdate(byte[] input, int offset, int len) {
-                if (ofs + len > digestBuffer.length) {
+                if (len > (digestBuffer.length - ofs)) {
                     ofs = Integer.MAX_VALUE;
                 } else {
                     System.arraycopy(input, offset, digestBuffer, ofs, len);
@@ -597,7 +597,7 @@
             }
             protected final void engineUpdate(ByteBuffer input) {
                 int inputLen = input.remaining();
-                if (ofs + inputLen > digestBuffer.length) {
+                if (inputLen > (digestBuffer.length - ofs)) {
                     ofs = Integer.MAX_VALUE;
                 } else {
                     input.get(digestBuffer, ofs, inputLen);
--- a/src/java.base/share/classes/sun/security/rsa/RSAPSSSignature.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/security/rsa/RSAPSSSignature.java	Fri Jul 27 12:16:01 2018 +0100
@@ -605,16 +605,15 @@
 
     @Override
     protected AlgorithmParameters engineGetParameters() {
-        if (this.sigParams == null) {
-            throw new ProviderException("Missing required PSS parameters");
+        AlgorithmParameters ap = null;
+        if (this.sigParams != null) {
+            try {
+                ap = AlgorithmParameters.getInstance("RSASSA-PSS");
+                ap.init(this.sigParams);
+            } catch (GeneralSecurityException gse) {
+                throw new ProviderException(gse.getMessage());
+            }
         }
-        try {
-            AlgorithmParameters ap =
-                AlgorithmParameters.getInstance("RSASSA-PSS");
-            ap.init(this.sigParams);
-            return ap;
-        } catch (GeneralSecurityException gse) {
-            throw new ProviderException(gse.getMessage());
-        }
+        return ap;
     }
 }
--- a/src/java.base/share/classes/sun/security/ssl/Alert.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/security/ssl/Alert.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,6 +31,7 @@
 import java.util.Locale;
 import javax.net.ssl.SSLException;
 import javax.net.ssl.SSLHandshakeException;
+import javax.net.ssl.SSLProtocolException;
 
 /**
  * SSL/(D)TLS Alter description
@@ -121,8 +122,11 @@
             reason = (cause != null) ? cause.getMessage() : "";
         }
 
-        SSLException ssle = handshakeOnly ?
-                new SSLHandshakeException(reason) : new SSLException(reason);
+        SSLException ssle = (this == UNEXPECTED_MESSAGE) ?
+                new SSLProtocolException(reason) :
+                (handshakeOnly ?
+                        new SSLHandshakeException(reason) :
+                        new SSLException(reason));
         if (cause != null) {
             ssle.initCause(cause);
         }
--- a/src/java.base/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	Fri Jul 27 12:16:01 2018 +0100
@@ -71,32 +71,35 @@
 
     SSLAlgorithmConstraints(SSLSocket socket,
             boolean withDefaultCertPathConstraints) {
-        AlgorithmConstraints configuredConstraints = null;
-        if (socket != null) {
-            // Note that the KeyManager or TrustManager implementation may be
-            // not implemented in the same provider as SSLSocket/SSLEngine.
-            // Please check the instance before casting to use SSLSocketImpl.
-            if (socket instanceof SSLSocketImpl) {
-                HandshakeContext hc =
-                        ((SSLSocketImpl)socket).conContext.handshakeContext;
-                if (hc != null) {
-                    configuredConstraints = hc.sslConfig.algorithmConstraints;
-                } else {
-                    configuredConstraints = null;
-                }
-            } else {
-                configuredConstraints =
-                        socket.getSSLParameters().getAlgorithmConstraints();
-            }
-        }
-        this.userSpecifiedConstraints = configuredConstraints;
+        this.userSpecifiedConstraints = getConstraints(socket);
         this.peerSpecifiedConstraints = null;
         this.enabledX509DisabledAlgConstraints = withDefaultCertPathConstraints;
     }
 
     SSLAlgorithmConstraints(SSLEngine engine,
             boolean withDefaultCertPathConstraints) {
-        AlgorithmConstraints configuredConstraints = null;
+        this.userSpecifiedConstraints = getConstraints(engine);
+        this.peerSpecifiedConstraints = null;
+        this.enabledX509DisabledAlgConstraints = withDefaultCertPathConstraints;
+    }
+
+    SSLAlgorithmConstraints(SSLSocket socket, String[] supportedAlgorithms,
+            boolean withDefaultCertPathConstraints) {
+        this.userSpecifiedConstraints = getConstraints(socket);
+        this.peerSpecifiedConstraints =
+                new SupportedSignatureAlgorithmConstraints(supportedAlgorithms);
+        this.enabledX509DisabledAlgConstraints = withDefaultCertPathConstraints;
+    }
+
+    SSLAlgorithmConstraints(SSLEngine engine, String[] supportedAlgorithms,
+            boolean withDefaultCertPathConstraints) {
+        this.userSpecifiedConstraints = getConstraints(engine);
+        this.peerSpecifiedConstraints =
+                new SupportedSignatureAlgorithmConstraints(supportedAlgorithms);
+        this.enabledX509DisabledAlgConstraints = withDefaultCertPathConstraints;
+    }
+
+    private static AlgorithmConstraints getConstraints(SSLEngine engine) {
         if (engine != null) {
             // Note that the KeyManager or TrustManager implementation may be
             // not implemented in the same provider as SSLSocket/SSLEngine.
@@ -105,60 +108,33 @@
                 HandshakeContext hc =
                         ((SSLEngineImpl)engine).conContext.handshakeContext;
                 if (hc != null) {
-                    configuredConstraints = hc.sslConfig.algorithmConstraints;
-                } else {
-                    configuredConstraints = null;
+                    return hc.sslConfig.algorithmConstraints;
                 }
             } else {
-                configuredConstraints =
-                        engine.getSSLParameters().getAlgorithmConstraints();
+                return engine.getSSLParameters().getAlgorithmConstraints();
             }
         }
-        this.userSpecifiedConstraints = configuredConstraints;
-        this.peerSpecifiedConstraints = null;
-        this.enabledX509DisabledAlgConstraints = withDefaultCertPathConstraints;
+
+        return null;
     }
 
-    SSLAlgorithmConstraints(SSLSocket socket, String[] supportedAlgorithms,
-            boolean withDefaultCertPathConstraints) {
-        AlgorithmConstraints configuredConstraints = null;
-        AlgorithmConstraints negotiatedConstraints = null;
+    private static AlgorithmConstraints getConstraints(SSLSocket socket) {
         if (socket != null) {
-            HandshakeContext hc =
-                    ((SSLSocketImpl)socket).conContext.handshakeContext;
-            if (hc != null) {
-                configuredConstraints = hc.sslConfig.algorithmConstraints;
+            // Note that the KeyManager or TrustManager implementation may be
+            // not implemented in the same provider as SSLSocket/SSLEngine.
+            // Please check the instance before casting to use SSLSocketImpl.
+            if (socket instanceof SSLSocketImpl) {
+                HandshakeContext hc =
+                        ((SSLSocketImpl)socket).conContext.handshakeContext;
+                if (hc != null) {
+                    return hc.sslConfig.algorithmConstraints;
+                }
             } else {
-                configuredConstraints = null;
+                return socket.getSSLParameters().getAlgorithmConstraints();
             }
-
-            negotiatedConstraints =
-                new SupportedSignatureAlgorithmConstraints(supportedAlgorithms);
         }
-        this.userSpecifiedConstraints = configuredConstraints;
-        this.peerSpecifiedConstraints = negotiatedConstraints;
-        this.enabledX509DisabledAlgConstraints = withDefaultCertPathConstraints;
-    }
 
-    SSLAlgorithmConstraints(SSLEngine engine, String[] supportedAlgorithms,
-            boolean withDefaultCertPathConstraints) {
-        AlgorithmConstraints configuredConstraints = null;
-        AlgorithmConstraints negotiatedConstraints = null;
-        if (engine != null) {
-            HandshakeContext hc =
-                    ((SSLEngineImpl)engine).conContext.handshakeContext;
-            if (hc != null) {
-                configuredConstraints = hc.sslConfig.algorithmConstraints;
-            } else {
-                configuredConstraints = null;
-            }
-
-            negotiatedConstraints =
-                new SupportedSignatureAlgorithmConstraints(supportedAlgorithms);
-        }
-        this.userSpecifiedConstraints = configuredConstraints;
-        this.peerSpecifiedConstraints = negotiatedConstraints;
-        this.enabledX509DisabledAlgConstraints = withDefaultCertPathConstraints;
+        return null;
     }
 
     @Override
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_ja.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/security/tools/keytool/Resources_ja.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,12 +45,12 @@
         {"option.1.set.twice", "%s\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u6700\u5F8C\u306E\u3082\u306E\u4EE5\u5916\u306F\u3059\u3079\u3066\u7121\u8996\u3055\u308C\u307E\u3059\u3002"},
         {"multiple.commands.1.2", "1\u3064\u306E\u30B3\u30DE\u30F3\u30C9\u306E\u307F\u8A31\u53EF\u3055\u308C\u307E\u3059: %1$s\u3068%2$s\u306E\u4E21\u65B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F\u3002"},
         {"Use.keytool.help.for.all.available.commands",
-                 "\u4F7F\u7528\u53EF\u80FD\u306A\u3059\u3079\u3066\u306E\u30B3\u30DE\u30F3\u30C9\u306B\u3064\u3044\u3066\u306F\"keytool -help\"\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044"},
+                 "\u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3059\u308B\u306B\u306F\"keytool -?\u3001-h\u307E\u305F\u306F--help\"\u3092\u4F7F\u7528\u3057\u307E\u3059"},
         {"Key.and.Certificate.Management.Tool",
                  "\u30AD\u30FC\u304A\u3088\u3073\u8A3C\u660E\u66F8\u7BA1\u7406\u30C4\u30FC\u30EB"},
         {"Commands.", "\u30B3\u30DE\u30F3\u30C9:"},
         {"Use.keytool.command.name.help.for.usage.of.command.name",
-                "command_name\u306E\u4F7F\u7528\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306F\u3001\"keytool -command_name -help\"\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n\u4E8B\u524D\u69CB\u6210\u6E08\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3059\u308B\u306B\u306F\u3001-conf <url>\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002"},
+                "command_name\u306E\u4F7F\u7528\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306F\u3001\"keytool -command_name --help\"\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n\u4E8B\u524D\u69CB\u6210\u6E08\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3059\u308B\u306B\u306F\u3001-conf <url>\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002"},
         // keytool: help: commands
         {"Generates.a.certificate.request",
                 "\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u751F\u6210\u3057\u307E\u3059"}, //-certreq
@@ -455,7 +455,7 @@
         {"with.weak", "%s (\u5F31)"},
         {"key.bit", "%1$d\u30D3\u30C3\u30C8%2$s\u9375"},
         {"key.bit.weak", "%1$d\u30D3\u30C3\u30C8%2$s\u9375(\u5F31)"},
-        {"unknown.size.1", "\u4E0D\u660E\u30B5\u30A4\u30BA\u306E%s\u9375"},
+        {"unknown.size.1", "\u4E0D\u660E\u306A\u30B5\u30A4\u30BA\u306E%s\u30AD\u30FC"},
         {".PATTERN.printX509Cert.with.weak",
                 "\u6240\u6709\u8005: {0}\n\u767A\u884C\u8005: {1}\n\u30B7\u30EA\u30A2\u30EB\u756A\u53F7: {2}\n\u6709\u52B9\u671F\u9593\u306E\u958B\u59CB\u65E5: {3}\u7D42\u4E86\u65E5: {4}\n\u8A3C\u660E\u66F8\u306E\u30D5\u30A3\u30F3\u30AC\u30D7\u30EA\u30F3\u30C8:\n\t SHA1: {5}\n\t SHA256: {6}\n\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u540D: {7}\n\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u516C\u958B\u9375\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: {8}\n\u30D0\u30FC\u30B8\u30E7\u30F3: {9}"},
         {"PKCS.10.with.weak",
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_CN.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_CN.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,12 +45,12 @@
         {"option.1.set.twice", "\u591A\u6B21\u6307\u5B9A\u4E86 %s \u9009\u9879\u3002\u9664\u6700\u540E\u4E00\u4E2A\u4E4B\u5916, \u5176\u4F59\u7684\u5C06\u5168\u90E8\u5FFD\u7565\u3002"},
         {"multiple.commands.1.2", "\u53EA\u5141\u8BB8\u4E00\u4E2A\u547D\u4EE4: \u540C\u65F6\u6307\u5B9A\u4E86 %1$s \u548C %2$s\u3002"},
         {"Use.keytool.help.for.all.available.commands",
-                 "\u4F7F\u7528 \"keytool -help\" \u83B7\u53D6\u6240\u6709\u53EF\u7528\u547D\u4EE4"},
+                 "\u4F7F\u7528 \"keytool -?, -h, or --help\" \u53EF\u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F"},
         {"Key.and.Certificate.Management.Tool",
                  "\u5BC6\u94A5\u548C\u8BC1\u4E66\u7BA1\u7406\u5DE5\u5177"},
         {"Commands.", "\u547D\u4EE4:"},
         {"Use.keytool.command.name.help.for.usage.of.command.name",
-                "\u4F7F\u7528 \"keytool -command_name -help\" \u53EF\u83B7\u53D6 command_name \u7684\u7528\u6CD5\u3002\n\u4F7F\u7528 -conf <url> \u9009\u9879\u53EF\u6307\u5B9A\u9884\u914D\u7F6E\u7684\u9009\u9879\u6587\u4EF6\u3002"},
+                "\u4F7F\u7528 \"keytool -command_name --help\" \u53EF\u83B7\u53D6 command_name \u7684\u7528\u6CD5\u3002\n\u4F7F\u7528 -conf <url> \u9009\u9879\u53EF\u6307\u5B9A\u9884\u914D\u7F6E\u7684\u9009\u9879\u6587\u4EF6\u3002"},
         // keytool: help: commands
         {"Generates.a.certificate.request",
                 "\u751F\u6210\u8BC1\u4E66\u8BF7\u6C42"}, //-certreq
--- a/src/java.base/share/classes/sun/security/x509/AlgorithmId.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/security/x509/AlgorithmId.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1039,7 +1039,7 @@
      * @return the default alg, might be null if unsupported
      */
     public static String getDefaultSigAlgForKey(PrivateKey k) {
-        switch (k.getAlgorithm().toUpperCase(Locale.ROOT)) {
+        switch (k.getAlgorithm().toUpperCase(Locale.ENGLISH)) {
             case "EC":
                 return ecStrength(KeyUtil.getKeySize(k))
                     + "withECDSA";
--- a/src/java.base/share/classes/sun/util/locale/provider/LocaleResources.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/util/locale/provider/LocaleResources.java	Fri Jul 27 12:16:01 2018 +0100
@@ -44,12 +44,14 @@
 import java.lang.ref.SoftReference;
 import java.text.MessageFormat;
 import java.util.Calendar;
+import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 import java.util.ResourceBundle;
 import java.util.Set;
+import java.util.TimeZone;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import sun.security.action.GetPropertyAction;
@@ -308,26 +310,37 @@
         Set<String> keyset = getZoneIDs();
         // Use a LinkedHashSet to preseve the order
         Set<String[]> value = new LinkedHashSet<>();
+        Set<String> tzIds = new HashSet<>(Set.of(TimeZone.getAvailableIDs()));
         for (String key : keyset) {
             if (!key.startsWith(TZNB_EXCITY_PREFIX)) {
                 value.add(rb.getStringArray(key));
+                tzIds.remove(key);
             }
         }
 
-        // Add aliases data for CLDR
         if (type == LocaleProviderAdapter.Type.CLDR) {
-            // Note: TimeZoneNamesBundle creates a String[] on each getStringArray call.
+            // Add aliases data for CLDR
             Map<String, String> aliases = ZoneInfo.getAliasTable();
-            for (String alias : aliases.keySet()) {
-                if (!keyset.contains(alias)) {
-                    String tzid = aliases.get(alias);
-                    if (keyset.contains(tzid)) {
-                        String[] val = rb.getStringArray(tzid);
-                        val[0] = alias;
+            // Note: TimeZoneNamesBundle creates a String[] on each getStringArray call.
+
+            // Add timezones which are not present in this keyset,
+            // so that their fallback names will be generated at runtime.
+            tzIds.stream().filter(i -> (!i.startsWith("Etc/GMT")
+                    && !i.startsWith("GMT")
+                    && !i.startsWith("SystemV")))
+                    .forEach(tzid -> {
+                        String[] val = new String[7];
+                        if (keyset.contains(tzid)) {
+                            val = rb.getStringArray(tzid);
+                        } else {
+                            String tz = aliases.get(tzid);
+                            if (keyset.contains(tz)) {
+                                val = rb.getStringArray(tz);
+                            }
+                        }
+                        val[0] = tzid;
                         value.add(val);
-                    }
-                }
-            }
+                    });
         }
         return value.toArray(new String[0][]);
     }
--- a/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java	Fri Jul 27 12:16:01 2018 +0100
@@ -604,6 +604,10 @@
             {"Asia/Ashkhabad", TMT},
             {"Asia/Baghdad", ARAST},
             {"Asia/Bahrain", ARAST},
+            {"Asia/Barnaul", new String[] {"Barnaul Standard Time", "GMT+07:00",
+                                           "Barnaul Daylight Time", "GMT+07:00",
+                                           "Barnaul Time" , "GMT+07:00"}},
+
             {"Asia/Baku", new String[] {"Azerbaijan Time", "AZT",
                                         "Azerbaijan Summer Time", "AZST",
                                         "Azerbaijan Time", "AZT"}},
@@ -711,6 +715,9 @@
             {"Asia/Tehran", IRT},
             {"Asia/Thimbu", BTT},
             {"Asia/Thimphu", BTT},
+            {"Asia/Tomsk", new String[] {"Tomsk Standard Time", "GMT+07:00",
+                                         "Tomsk Daylight Time", "GMT+07:00",
+                                         "Tomsk Time" , "GMT+07:00"}},
             {"Asia/Ujung_Pandang", CIT},
             {"Asia/Ulaanbaatar", ULAT},
             {"Asia/Ulan_Bator", ULAT},
@@ -827,6 +834,9 @@
             {"Europe/Jersey", GMTBST},
             {"Europe/Kaliningrad", EET},
             {"Europe/Kiev", EET},
+            {"Europe/Kirov", new String[] {"Kirov Standard Time", "GMT+03:00",
+                                           "Kirov Daylight Time", "GMT+03:00",
+                                           "Kirov Time", "GMT+03:00"}},
             {"Europe/Lisbon", WET},
             {"Europe/Ljubljana", CET},
             {"Europe/London", GMTBST},
--- a/src/java.base/share/conf/security/java.security	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.base/share/conf/security/java.security	Fri Jul 27 12:16:01 2018 +0100
@@ -1061,14 +1061,22 @@
   java.base/java.security.KeyRep$Type;java.base/javax.crypto.spec.SecretKeySpec;!*
 
 #
-# Enhanced exception message text
+# Enhanced exception message information
+#
+# By default, exception messages should not include potentially sensitive
+# information such as file names, host names, or port numbers. This property
+# accepts one or more comma separated values, each of which represents a
+# category of enhanced exception message information to enable. Values are
+# case-insensitive. Leading and trailing whitespaces, surrounding each value,
+# are ignored. Unknown values are ignored.
 #
-# By default, socket exception messages do not include potentially sensitive
-# information such as hostnames or port numbers. This property may be set to one
-# or more values, separated by commas, and with no white-space. Each value
-# represents a category of enhanced information. Currently, the only category defined
-# is "hostInfo" which enables more detailed information in the IOExceptions
-# thrown by java.net.Socket and also the socket types in the java.nio.channels package.
-# The setting in this file can be overridden by a system property of the same name
-# and with the same syntax and possible values.
-#jdk.net.includeInExceptions=hostInfo
+# The categories are:
+#
+#  hostInfo - IOExceptions thrown by java.net.Socket and the socket types in the
+#             java.nio.channels package will contain enhanced exception
+#             message information
+#
+# The property setting in this file can be overridden by a system property of
+# the same name, with the same syntax and possible values.
+#
+#jdk.includeInExceptions=hostInfo
--- a/src/java.compiler/share/classes/javax/annotation/processing/RoundEnvironment.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.compiler/share/classes/javax/annotation/processing/RoundEnvironment.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -86,7 +86,7 @@
      * created.
      * Likewise, elements of a module are not considered included
      * simply because a {@code module-info} file for that module was
-     * created
+     * created.
      *
      * @param a  annotation type being requested
      * @return the elements annotated with the given annotation type,
@@ -141,7 +141,7 @@
      * created.
      * Likewise, elements of a module are not considered included
      * simply because a {@code module-info} file for that module was
-     * created
+     * created.
      *
      * @param a  annotation type being requested
      * @return the elements annotated with the given annotation type,
--- a/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java	Fri Jul 27 12:16:01 2018 +0100
@@ -57,7 +57,8 @@
      * 1.8: lambda expressions and default methods
      *   9: modules, small cleanups to 1.7 and 1.8 changes
      *  10: local-variable type inference (var)
-     *  11: to be determined changes
+     *  11: local-variable syntax for lambda parameters
+     *  12: TBD
      */
 
     /**
@@ -169,6 +170,9 @@
      * The version recognized by the Java Platform, Standard Edition
      * 11.
      *
+     * Additions in this release include local-variable syntax for
+     * lambda parameters.
+     *
      * @since 11
      */
      RELEASE_11,
--- a/src/java.rmi/share/classes/sun/rmi/server/resources/rmid_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.rmi/share/classes/sun/rmi/server/resources/rmid_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,6 +1,6 @@
 #
 #
-# Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@
 rmid.syntax.log.required=-log\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u5FC5\u8981\u3067\u3059
 
 # {0} = the (string) illegal argument in question
-rmid.syntax.illegal.option=\u4E0D\u6B63\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: {0}
+rmid.syntax.illegal.option=\u7121\u52B9\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: {0}
 
 # {0} = the (string) reason text that came with a thrown exception
 # "Activation.main" should not be translated, because it's a codepoint
--- a/src/java.rmi/share/classes/sun/rmi/server/resources/rmid_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/java.rmi/share/classes/sun/rmi/server/resources/rmid_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,6 +1,6 @@
 #
 #
-# Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@
 rmid.syntax.log.required=\u9700\u8981 -log \u9009\u9879
 
 # {0} = the (string) illegal argument in question
-rmid.syntax.illegal.option=\u975E\u6CD5\u9009\u9879: {0}
+rmid.syntax.illegal.option=\u65E0\u6548\u7684\u9009\u9879\uFF1A{0}
 
 # {0} = the (string) reason text that came with a thrown exception
 # "Activation.main" should not be translated, because it's a codepoint
--- a/src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java	Fri Jul 27 12:16:01 2018 +0100
@@ -272,7 +272,7 @@
      *
      * @param graalOptions
      */
-    public BinaryContainer(OptionValues graalOptions, GraalHotSpotVMConfig graalHotSpotVMConfig, GraphBuilderConfiguration graphBuilderConfig, String jvmVersion) {
+    public BinaryContainer(OptionValues graalOptions, GraalHotSpotVMConfig graalHotSpotVMConfig, GraphBuilderConfiguration graphBuilderConfig, int gc, String jvmVersion) {
         this.graalOptions = graalOptions;
 
         this.codeSegmentSize = graalHotSpotVMConfig.codeSegmentSize;
@@ -316,16 +316,15 @@
 
         addGlobalSymbols();
 
-        recordConfiguration(graalHotSpotVMConfig, graphBuilderConfig);
+        recordConfiguration(graalHotSpotVMConfig, graphBuilderConfig, gc);
     }
 
-    private void recordConfiguration(GraalHotSpotVMConfig graalHotSpotVMConfig, GraphBuilderConfiguration graphBuilderConfig) {
+    private void recordConfiguration(GraalHotSpotVMConfig graalHotSpotVMConfig, GraphBuilderConfiguration graphBuilderConfig, int gc) {
         // @formatter:off
         boolean[] booleanFlags = { graalHotSpotVMConfig.cAssertions, // Debug VM
                                    graalHotSpotVMConfig.useCompressedOops,
                                    graalHotSpotVMConfig.useCompressedClassPointers,
                                    graalHotSpotVMConfig.compactFields,
-                                   graalHotSpotVMConfig.useG1GC,
                                    graalHotSpotVMConfig.useTLAB,
                                    graalHotSpotVMConfig.useBiasedLocking,
                                    TieredAOT.getValue(graalOptions),
@@ -341,6 +340,7 @@
                                    graalHotSpotVMConfig.fieldsAllocationStyle,
                                    1 << graalHotSpotVMConfig.logMinObjAlignment(),
                                    graalHotSpotVMConfig.codeSegmentSize,
+                                   gc
         };
         // @formatter:on
 
--- a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Collector.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Collector.java	Fri Jul 27 12:16:01 2018 +0100
@@ -61,7 +61,7 @@
 
         List<LoadedClass> foundClasses = null;
         try {
-            foundClasses = lookup.search(main.options.files, main.options.searchPath);
+            foundClasses = lookup.search(main.options.files, main.options.searchPath, this::handleLoadingError);
         } catch (InternalError e) {
             main.printer.reportError(e);
             return null;
@@ -118,12 +118,7 @@
                     addMethods(aotClass, ctors, compilationRestrictions);
                     total += ctors.length;
                 } catch (Throwable e) {
-                    // If we are running in JCK mode we ignore all exceptions.
-                    if (main.options.ignoreClassLoadingErrors) {
-                        main.printer.printError(c.getName() + ": " + e);
-                    } else {
-                        throw new InternalError(e);
-                    }
+                    handleLoadingError(c.getName(), e);
                 }
 
                 // Methods
@@ -132,12 +127,7 @@
                     addMethods(aotClass, methods, compilationRestrictions);
                     total += methods.length;
                 } catch (Throwable e) {
-                    // If we are running in JCK mode we ignore all exceptions.
-                    if (main.options.ignoreClassLoadingErrors) {
-                        main.printer.printError(c.getName() + ": " + e);
-                    } else {
-                        throw new InternalError(e);
-                    }
+                    handleLoadingError(c.getName(), e);
                 }
 
                 // Class initializer
@@ -148,12 +138,7 @@
                         total++;
                     }
                 } catch (Throwable e) {
-                    // If we are running in JCK mode we ignore all exceptions.
-                    if (main.options.ignoreClassLoadingErrors) {
-                        main.printer.printError(c.getName() + ": " + e);
-                    } else {
-                        throw new InternalError(e);
-                    }
+                    handleLoadingError(c.getName(), e);
                 }
 
                 // Found any methods to compile? Add the class.
@@ -215,4 +200,11 @@
         return compilationRestrictions;
     }
 
+    private void handleLoadingError(String name, Throwable t) {
+        if (main.options.ignoreClassLoadingErrors) {
+            main.printer.printError(name + ": " + t);
+        } else {
+            throw new InternalError(t);
+        }
+    }
 }
--- a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Main.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Main.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,8 @@
 import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig;
 import org.graalvm.compiler.hotspot.HotSpotGraalCompilerFactory;
 import org.graalvm.compiler.hotspot.HotSpotGraalOptionValues;
-import org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider;
+import org.graalvm.compiler.hotspot.HotSpotGraalRuntime;
+import org.graalvm.compiler.hotspot.HotSpotGraalRuntime.HotSpotGC;
 import org.graalvm.compiler.hotspot.HotSpotHostBackend;
 import org.graalvm.compiler.hotspot.meta.HotSpotInvokeDynamicPlugin;
 import org.graalvm.compiler.java.GraphBuilderPhase;
@@ -142,7 +143,7 @@
             }
             graalOptions = new OptionValues(graalOptions, GeneratePIC, true, ImmutableCode, true);
             GraalJVMCICompiler graalCompiler = HotSpotGraalCompilerFactory.createCompiler("JAOTC", JVMCI.getRuntime(), graalOptions, CompilerConfigurationFactory.selectFactory(null, graalOptions));
-            HotSpotGraalRuntimeProvider runtime = (HotSpotGraalRuntimeProvider) graalCompiler.getGraalRuntime();
+            HotSpotGraalRuntime runtime = (HotSpotGraalRuntime) graalCompiler.getGraalRuntime();
             HotSpotHostBackend backend = (HotSpotHostBackend) runtime.getCapability(RuntimeProvider.class).getHostBackend();
             MetaAccessProvider metaAccess = backend.getProviders().getMetaAccess();
             filters = new GraalFilters(metaAccess);
@@ -181,7 +182,8 @@
                 System.gc();
             }
 
-            BinaryContainer binaryContainer = new BinaryContainer(graalOptions, graalHotSpotVMConfig, graphBuilderConfig, JVM_VERSION);
+            int gc = runtime.getGarbageCollector().ordinal()+1;
+            BinaryContainer binaryContainer = new BinaryContainer(graalOptions, graalHotSpotVMConfig, graphBuilderConfig, gc, JVM_VERSION);
             DataBuilder dataBuilder = new DataBuilder(this, backend, classes, binaryContainer);
 
             try (DebugContext debug = DebugContext.create(graalOptions, new GraalDebugHandlersFactory(snippetReflection)); Activation a = debug.activate()) {
--- a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/collect/ClassSearch.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/collect/ClassSearch.java	Fri Jul 27 12:16:01 2018 +0100
@@ -27,6 +27,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.function.BiConsumer;
 
 public final class ClassSearch {
     private final List<SourceProvider> providers = new ArrayList<>();
@@ -36,39 +37,53 @@
     }
 
     public List<LoadedClass> search(List<SearchFor> search, SearchPath searchPath) {
+        return search(search, searchPath, (s, t) -> { throw new InternalError(s + " : " + t, t); } );
+    }
+
+    public List<LoadedClass> search(List<SearchFor> search, SearchPath searchPath, BiConsumer<String, Throwable> classLoadingErrorsHandler) {
         List<LoadedClass> loaded = new ArrayList<>();
 
         List<ClassSource> sources = new ArrayList<>();
 
         for (SearchFor entry : search) {
-            sources.add(findSource(entry, searchPath));
+            sources.add(findSource(entry, searchPath, classLoadingErrorsHandler));
         }
 
         for (ClassSource source : sources) {
-            source.eachClass((name, loader) -> loaded.add(loadClass(name, loader)));
+            if (source != null) {
+                source.eachClass((name, loader) -> {
+                    LoadedClass x = loadClass(name, loader, classLoadingErrorsHandler);
+                    if (x != null) { loaded.add(x); }
+                });
+            }
         }
 
         return loaded;
     }
 
-    private static LoadedClass loadClass(String name, ClassLoader loader) {
+    private static LoadedClass loadClass(String name, ClassLoader loader, BiConsumer<String, Throwable> classLoadingErrorsHandler) {
         try {
             Class<?> clzz = loader.loadClass(name);
             return new LoadedClass(name, clzz);
-        } catch (ClassNotFoundException e) {
-            throw new InternalError("Failed to load with: " + loader, e);
+        } catch (Throwable e) {
+            classLoadingErrorsHandler.accept(name, e);
+            return null;
         }
     }
 
-    private ClassSource findSource(SearchFor searchFor, SearchPath searchPath) {
+    private ClassSource findSource(SearchFor searchFor, SearchPath searchPath, BiConsumer<String, Throwable> classLoadingErrorsHandler) {
         ClassSource found = null;
 
         for (SourceProvider provider : providers) {
             if (!searchFor.isUnknown() && !provider.supports(searchFor.getType())) {
                 continue;
             }
-
-            ClassSource source = provider.findSource(searchFor.getName(), searchPath);
+            ClassSource source = null;
+            try {
+                source = provider.findSource(searchFor.getName(), searchPath);
+            } catch (Throwable e) {
+                classLoadingErrorsHandler.accept(searchFor.getName(), e);
+            }
             if (source != null) {
                 if (found != null) {
                     throw new InternalError("Multiple possible sources: " + source + " and: " + found);
@@ -78,7 +93,7 @@
         }
 
         if (found == null) {
-            throw new InternalError("Failed to find " + searchFor.getType() + " file: " + searchFor.getName());
+            classLoadingErrorsHandler.accept(searchFor.getName(), new InternalError("Failed to find " + searchFor.getType() + " file: " + searchFor.getName()));
         }
         return found;
     }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -170,6 +170,18 @@
             e.accept(this, annotation);
             return annotatedElements;
         }
+
+        @Override @DefinedBy(Api.LANGUAGE_MODEL)
+        public Set<Element> visitModule(ModuleElement e, TypeElement annotation) {
+            // Do not scan a module
+            return annotatedElements;
+        }
+
+        @Override @DefinedBy(Api.LANGUAGE_MODEL)
+        public Set<Element> visitPackage(PackageElement e, TypeElement annotation) {
+            // Do not scan a package
+            return annotatedElements;
+        }
     }
 
     // Could be written as a local class inside getElementsAnnotatedWithAny
@@ -193,6 +205,18 @@
             e.accept(this, annotations);
             return annotatedElements;
         }
+
+        @Override @DefinedBy(Api.LANGUAGE_MODEL)
+        public Set<Element> visitModule(ModuleElement e, Set<TypeElement> annotations) {
+            // Do not scan a module
+            return annotatedElements;
+        }
+
+        @Override @DefinedBy(Api.LANGUAGE_MODEL)
+        public Set<Element> visitPackage(PackageElement e, Set<TypeElement> annotations) {
+            // Do not scan a package
+            return annotatedElements;
+        }
     }
 
     private static abstract class ElementScanningIncludingTypeParameters<R, P>
@@ -224,10 +248,12 @@
     public Set<? extends Element> getElementsAnnotatedWith(Class<? extends Annotation> a) {
         throwIfNotAnnotation(a);
         String name = a.getCanonicalName();
+
         if (name == null)
             return Collections.emptySet();
         else {
-            TypeElement annotationType = eltUtils.getTypeElement(name);
+            TypeElement annotationType = annotationToElement(a);
+
             if (annotationType == null)
                 return Collections.emptySet();
             else
@@ -244,12 +270,29 @@
             String name = annotation.getCanonicalName();
             if (name == null)
                 continue;
-            annotationsAsElements.add(eltUtils.getTypeElement(name));
+            annotationsAsElements.add(annotationToElement(annotation));
         }
 
         return getElementsAnnotatedWithAny(annotationsAsElements.toArray(new TypeElement[0]));
     }
 
+    private TypeElement annotationToElement(Class<? extends Annotation> annotation) {
+        // First, try an element lookup based on the annotation's
+        // canonical name. If that fails or is ambiguous, try a lookup
+        // using a particular module, perhaps an unnamed one. This
+        // offers more compatibility for compiling in single-module
+        // mode where the runtime module of an annotation type may
+        // differ from the single module being compiled.
+        String name = annotation.getCanonicalName();
+        TypeElement annotationElement = eltUtils.getTypeElement(name);
+        if (annotationElement != null)
+            return annotationElement;
+        else {
+            String moduleName = Objects.requireNonNullElse(annotation.getModule().getName(), "");
+            return eltUtils.getTypeElement(eltUtils.getModuleElement(moduleName), name);
+        }
+    }
+
     private Element mirrorAsElement(AnnotationMirror annotationMirror) {
         return annotationMirror.getAnnotationType().asElement();
     }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -39,13 +39,18 @@
 # name              a name, typically a Java identifier
 # number            an integer
 # option name       the name of a command line option
-# source version    a source version number, such as 1.5, 1.6, 1.7
+# path              a path
+# profile           a profile name
+# source            a source version number, such as 1.5, 1.6, 1.7, taken from a com.sun.tools.javac.code.Source
+# source version    a source version number, such as 1.5, 1.6, 1.7, taken from a javax.lang.model.SourceVersion
 # string            a general string
 # symbol            the name of a declared type
 # symbol kind       the kind of a symbol (i.e. method, variable)
 # kind name         an informative description of the kind of a declaration; see compiler.misc.kindname.*
+# target            a target version number, such as 1.5, 1.6, 1.7, taken from a com.sun.tools.javac.jvm.Target
 # token             the name of a non-terminal in source code; see compiler.misc.token.*
 # type              a Java type; e.g. int, X, X<T>
+# url               a URL
 # object            a Java object (unspecified)
 # unused            the value is not used in this message
 #
@@ -212,7 +217,7 @@
 # 0: kind name, 1: message segment
 compiler.err.invalid.mref={0}\u53C2\u7167\u304C\u7121\u52B9\u3067\u3059\n{1}
 
-# 0: symbol kind, 1: message segment
+# 0: kind name, 1: message segment
 compiler.misc.invalid.mref={0}\u53C2\u7167\u304C\u7121\u52B9\u3067\u3059\n{1}
 
 compiler.misc.static.mref.with.targs=static\u30E1\u30BD\u30C3\u30C9\u53C2\u7167\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u5316\u3055\u308C\u305F\u4FEE\u98FE\u5B50
@@ -460,8 +465,8 @@
 # 0: type, 1: type
 compiler.err.incomparable.types=\u578B{0}\u3068{1}\u306F\u6BD4\u8F03\u3067\u304D\u307E\u305B\u3093
 
-# 0: number
-compiler.err.int.number.too.large=\u6574\u6570{0}\u304C\u5927\u304D\u3059\u304E\u307E\u3059
+# 0: string
+compiler.err.int.number.too.large=\u6574\u6570\u304C\u5927\u304D\u3059\u304E\u307E\u3059\u3002
 
 compiler.err.intf.annotation.members.cant.have.params=\u6CE8\u91C8\u578B\u5BA3\u8A00\u5185\u306E\u8981\u7D20\u304C\u4EEE\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093
 
@@ -493,6 +498,8 @@
 
 compiler.err.array.and.receiver =\u65E7\u5F0F\u306E\u914D\u5217\u8868\u8A18\u6CD5\u306F\u53D7\u53D6\u308A\u5074\u30D1\u30E9\u30E1\u30FC\u30BF\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
 
+compiler.err.wrong.receiver =\u53D7\u53D6\u308A\u5074\u30D1\u30E9\u30E1\u30FC\u30BF\u306E\u540D\u524D\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059
+
 compiler.err.variable.not.allowed=\u5909\u6570\u306E\u5BA3\u8A00\u3092\u3053\u3053\u3067\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
 
 # 0: name
@@ -786,9 +793,6 @@
 
 compiler.err.signature.doesnt.match.intf=\u30B7\u30B0\u30CB\u30C1\u30E3\u304C{0}\u306B\u9069\u5408\u3057\u307E\u305B\u3093\u3002\u4E92\u63DB\u6027\u306E\u306A\u3044\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059
 
-# 0: number, 1: number
-compiler.err.method.invoked.with.incorrect.number.arguments=\u30E1\u30BD\u30C3\u30C9\u3092\u8D77\u52D5\u3057\u305F\u5F15\u6570\u306E\u6570\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002\u4E88\u671F\u3055\u308C\u308B\u6570\u306F{0}\u3067\u3059\u304C\u3001{1}\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F
-
 # 0: symbol, 1: symbol, 2: symbol
 compiler.err.does.not.override.abstract={0}\u306Fabstract\u3067\u306A\u304F\u3001{2}\u5185\u306Eabstract\u30E1\u30BD\u30C3\u30C9{1}\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u305B\u3093
 
@@ -802,8 +806,14 @@
 
 compiler.err.string.const.req=\u5B9A\u6570\u306E\u6587\u5B57\u5217\u5F0F\u304C\u5FC5\u8981\u3067\u3059
 
+# 0: symbol, 1: fragment
+compiler.err.cannot.generate.class=\u30AF\u30E9\u30B9{0}\u306E\u751F\u6210\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\n({1})
+
 # 0: symbol, 1: symbol
-compiler.err.synthetic.name.conflict=\u30B7\u30F3\u30DC\u30EB{0}\u304C\u3001{1}\u3067\u30B3\u30F3\u30D1\u30A4\u30E9\u304C\u5408\u6210\u3057\u305F\u30B7\u30F3\u30DC\u30EB\u3068\u7AF6\u5408\u3057\u307E\u3059
+compiler.misc.synthetic.name.conflict=\u30B7\u30F3\u30DC\u30EB{0}\u304C\u3001{1}\u3067\u30B3\u30F3\u30D1\u30A4\u30E9\u304C\u5408\u6210\u3057\u305F\u30B7\u30F3\u30DC\u30EB\u3068\u7AF6\u5408\u3057\u307E\u3059
+
+# 0: symbol, 1: type
+compiler.misc.illegal.signature=\u578B{1}\u306E\u7F72\u540D\u5C5E\u6027\u304C\u4E0D\u6B63\u3067\u3059
 
 compiler.err.throws.not.allowed.in.intf.annotation=throws\u7BC0\u3092@interface\u30E1\u30F3\u30D0\u30FC\u3067\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
 
@@ -822,14 +832,17 @@
 
 compiler.err.type.var.more.than.once.in.result=\u578B\u5909\u6570{0}\u306F{1}\u306E\u578B\u30672\u56DE\u4EE5\u4E0A\u51FA\u73FE\u3057\u307E\u3059\u3002\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u751F\u6210\u3055\u308C\u306A\u3044\u307E\u307E\u306B\u306F\u3067\u304D\u307E\u305B\u3093
 
-# 0: type, 1: type, 2: string
-compiler.err.types.incompatible.diff.ret=\u578B{0}\u3068\u578B{1}\u306E\u4E92\u63DB\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u4E21\u65B9\u3068\u3082{2}\u3092\u5B9A\u7FA9\u3057\u3066\u3044\u307E\u3059\u304C\u3001\u623B\u308A\u5024\u306E\u578B\u304C\u7121\u95A2\u4FC2\u3067\u3059
+# 0: type, 1: type, 2: fragment
+compiler.err.types.incompatible=\u30BF\u30A4\u30D7{0}\u3068{1}\u306F\u4E92\u63DB\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002\n{2}
+
+# 0: name, 1: list of type
+compiler.misc.incompatible.diff.ret=\u4E21\u65B9\u3068\u3082{0}({1})\u3092\u5B9A\u7FA9\u3057\u3066\u3044\u307E\u3059\u304C\u3001\u623B\u308A\u5024\u306E\u578B\u304C\u7121\u95A2\u4FC2\u3067\u3059
 
 # 0: kind name, 1: type, 2: name, 3: list of type, 4: symbol, 5: symbol
-compiler.err.types.incompatible.unrelated.defaults={0} {1}\u306F\u578B{4}\u3068{5}\u304B\u3089{2}({3})\u306E\u95A2\u9023\u3057\u306A\u3044\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u7D99\u627F\u3057\u307E\u3059
+compiler.misc.incompatible.unrelated.defaults={0} {1}\u306F\u578B{4}\u3068{5}\u304B\u3089{2}({3})\u306E\u95A2\u9023\u3057\u306A\u3044\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u7D99\u627F\u3057\u307E\u3059
 
 # 0: kind name, 1: type, 2: name, 3: list of type, 4: symbol, 5: symbol
-compiler.err.types.incompatible.abstract.default={0} {1}\u306F\u578B{4}\u3068{5}\u304B\u3089{2}({3})\u306E\u62BD\u8C61\u3068\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u7D99\u627F\u3057\u307E\u3059
+compiler.misc.incompatible.abstract.default={0} {1}\u306F\u578B{4}\u3068{5}\u304B\u3089{2}({3})\u306E\u62BD\u8C61\u3068\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u7D99\u627F\u3057\u307E\u3059
 
 # 0: name, 1: kind name, 2: symbol
 compiler.err.default.overrides.object.member={1} {2}\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30E1\u30BD\u30C3\u30C9{0}\u306Fjava.lang.Object\u306E\u30E1\u30F3\u30D0\u30FC\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059
@@ -860,13 +873,11 @@
 # 0: name
 compiler.err.undef.label=\u30E9\u30D9\u30EB{0}\u306F\u672A\u5B9A\u7FA9\u3067\u3059
 
-# 0: name (type)
-compiler.err.illegal.ref.to.var.type=\u5236\u9650\u3055\u308C\u305F\u578B''{0}''\u3078\u306E\u7121\u52B9\u306A\u53C2\u7167\u3067\u3059
-
-# 0: token
-compiler.err.var.not.allowed=\u3053\u3053\u3067\u306F''{0}''\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093\n\u30EA\u30EA\u30FC\u30B910\u304B\u3089''{0}''\u306F\u5236\u9650\u3055\u308C\u305F\u30ED\u30FC\u30AB\u30EB\u5909\u6570\u578B\u3067\u3042\u308A\u3001\u578B\u306E\u5BA3\u8A00\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
-
-compiler.warn.var.not.allowed=\u30EA\u30EA\u30FC\u30B910\u304B\u3089\u3001''var''\u306F\u5236\u9650\u3055\u308C\u305F\u30ED\u30FC\u30AB\u30EB\u5909\u6570\u578B\u3067\u3042\u308A\u3001\u578B\u306E\u5BA3\u8A00\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
+compiler.err.illegal.ref.to.var.type=\u5236\u9650\u3055\u308C\u305F\u578B''var''\u3078\u306E\u7121\u52B9\u306A\u53C2\u7167\u3067\u3059
+
+compiler.err.var.not.allowed=\u3053\u3053\u3067\u306F''var''\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093\n\u30EA\u30EA\u30FC\u30B910\u304B\u3089\u3001''var''\u306F\u5236\u9650\u3055\u308C\u305F\u30ED\u30FC\u30AB\u30EB\u5909\u6570\u578B\u3067\u3042\u308A\u3001\u578B\u306E\u5BA3\u8A00\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
+
+compiler.warn.var.not.allowed=\u30EA\u30EA\u30FC\u30B910\u304B\u3089\u3001''var''\u306F\u5236\u9650\u3055\u308C\u305F\u30ED\u30FC\u30AB\u30EB\u5909\u6570\u578B\u3067\u3042\u308A\u3001\u578B\u306E\u5BA3\u8A00\u3067\u306E\u4F7F\u7528\u3001\u307E\u305F\u306F\u914D\u5217\u306E\u8981\u7D20\u30BF\u30A4\u30D7\u3068\u3057\u3066\u306E\u4F7F\u7528\u306F\u3067\u304D\u307E\u305B\u3093
 
 # 0: name (variable), 1: message segment
 compiler.err.cant.infer.local.var.type=\u30ED\u30FC\u30AB\u30EB\u5909\u6570{0}\u306E\u578B\u3092\u63A8\u8AD6\u3067\u304D\u307E\u305B\u3093\n({1})
@@ -877,6 +888,15 @@
 
 compiler.err.var.not.allowed.compound=''var''\u306F\u8907\u5408\u5BA3\u8A00\u3067\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093
 
+# 0: fragment
+compiler.err.invalid.lambda.parameter.declaration=\u7121\u52B9\u306A\u30E9\u30E0\u30C0\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF\u5BA3\u8A00\n({0})
+
+compiler.misc.implicit.and.explicit.not.allowed=\u6697\u9ED9\u7684\u306B\u578B\u6307\u5B9A\u3055\u308C\u305F\u30D1\u30E9\u30E1\u30FC\u30BF\u3068\u660E\u793A\u7684\u306B\u578B\u6307\u5B9A\u3055\u308C\u305F\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u7D44\u307F\u5408\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
+
+compiler.misc.var.and.explicit.not.allowed=''var''\u3068\u660E\u793A\u7684\u306B\u578B\u6307\u5B9A\u3055\u308C\u305F\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u7D44\u307F\u5408\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
+
+compiler.misc.var.and.implicit.not.allowed=''var''\u3068\u6697\u9ED9\u7684\u306B\u578B\u6307\u5B9A\u3055\u308C\u305F\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u7D44\u307F\u5408\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
+
 compiler.misc.local.cant.infer.null=\u5909\u6570\u521D\u671F\u5316\u5B50\u306F''null''\u3067\u3059
 
 compiler.misc.local.cant.infer.void=\u5909\u6570\u521D\u671F\u5316\u5B50\u306F''void''\u3067\u3059
@@ -1097,6 +1117,20 @@
 
 compiler.note.unchecked.plural.additional=\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u64CD\u4F5C\u306E\u3046\u3061\u3001\u672A\u30C1\u30A7\u30C3\u30AF\u307E\u305F\u306F\u5B89\u5168\u3067\u306F\u306A\u3044\u3082\u306E\u304C\u3055\u3089\u306B\u3042\u308A\u307E\u3059\u3002
 
+# 0: file name
+compiler.note.preview.filename={0}\u306F\u30D7\u30EC\u30D3\u30E5\u30FC\u8A00\u8A9E\u6A5F\u80FD\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
+
+compiler.note.preview.plural=\u4E00\u90E8\u306E\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306F\u30D7\u30EC\u30D3\u30E5\u30FC\u8A00\u8A9E\u6A5F\u80FD\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
+
+# The following string may appear after one of the above deprecation
+# messages.
+compiler.note.preview.recompile=\u8A73\u7D30\u306F\u3001-Xlint:preview\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u3066\u518D\u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+
+# 0: file name
+compiler.note.preview.filename.additional={0}\u306F\u8FFD\u52A0\u3067\u30D7\u30EC\u30D3\u30E5\u30FC\u8A00\u8A9E\u6A5F\u80FD\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
+
+compiler.note.preview.plural.additional=\u4E00\u90E8\u306E\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306F\u8FFD\u52A0\u3067\u30D7\u30EC\u30D3\u30E5\u30FC\u8A00\u8A9E\u6A5F\u80FD\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
+
 # Notes related to annotation processing
 
 # Print a client-generated note; assumed to be localized, no translation required
@@ -1206,6 +1240,9 @@
 # 0: type, 1: type
 compiler.warn.inexact.non-varargs.call=\u6700\u7D42\u30D1\u30E9\u30E1\u30FC\u30BF\u306E\u4E0D\u6B63\u78BA\u306A\u5F15\u6570\u578B\u3092\u6301\u3063\u305F\u53EF\u5909\u5F15\u6570\u30E1\u30BD\u30C3\u30C9\u306E\u975E\u53EF\u5909\u5F15\u6570\u547C\u51FA\u3057\u3002\n\u53EF\u5909\u5F15\u6570\u547C\u51FA\u3057\u306B\u95A2\u3057\u3066\u306F{0}\u306B\u30AD\u30E3\u30B9\u30C8\u3057\u307E\u3059\u3002\n\u975E\u53EF\u5909\u5F15\u6570\u547C\u51FA\u3057\u306B\u95A2\u3057\u3066\u306F{1}\u306B\u30AD\u30E3\u30B9\u30C8\u3057\u3066\u3053\u306E\u8B66\u544A\u3092\u51FA\u3055\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059
 
+# 0: target, 1: target
+compiler.err.bad.target.sigpoly.call=\u591A\u76F8\u7F72\u540D\u547C\u51FA\u3057\u306F-target {0}\u3067\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(\u591A\u76F8\u7F72\u540D\u547C\u51FA\u3057\u3092\u6709\u52B9\u306B\u3059\u308B\u306B\u306F-target {1}\u4EE5\u4E0A\u3092\u4F7F\u7528\u3057\u307E\u3059)
+
 # 0: list of type
 compiler.warn.unreachable.catch=catch\u53E5\u306B\u79FB\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\n\u30B9\u30ED\u30FC\u3055\u308C\u305F\u30BF\u30A4\u30D7{0}\u306F\u3059\u3067\u306B\u6355\u6349\u3055\u308C\u3066\u3044\u307E\u3059
 
@@ -1247,7 +1284,7 @@
 # 0: file name, 1: number, 2: number
 compiler.warn.big.major.version={0}: \u30E1\u30B8\u30E3\u30FC\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3{1}\u306F\u3001\u3053\u306E\u30B3\u30F3\u30D1\u30A4\u30E9\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u6700\u65B0\u306E\u30E1\u30B8\u30E3\u30FC\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3{2}\u3088\u308A\u65B0\u3057\u3044\u3067\u3059\u3002\n\u30B3\u30F3\u30D1\u30A4\u30E9\u306E\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u3092\u304A\u85A6\u3081\u3057\u307E\u3059\u3002
 
-# 0: symbol kind, 1: symbol
+# 0: kind name, 1: symbol
 compiler.warn.static.not.qualified.by.type=static {0}\u306F\u5F0F\u3067\u306F\u306A\u304F\u578B\u540D{1}\u3067\u4FEE\u98FE\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
 
 # 0: string
@@ -1256,15 +1293,19 @@
 # 0: string
 compiler.warn.option.obsolete.source=\u30BD\u30FC\u30B9\u5024{0}\u306F\u5EC3\u6B62\u3055\u308C\u3066\u3044\u3066\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u4E88\u5B9A\u3067\u3059
 
-# 0: string
+# 0: target
 compiler.warn.option.obsolete.target=\u30BF\u30FC\u30B2\u30C3\u30C8\u5024{0}\u306F\u5EC3\u6B62\u3055\u308C\u3066\u3044\u3066\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u4E88\u5B9A\u3067\u3059
 
 # 0: string, 1: string
 compiler.err.option.removed.source=\u30BD\u30FC\u30B9\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306F\u73FE\u5728\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002{1}\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
-# 0: string, 1: string
+# 0: target, 1: target
 compiler.err.option.removed.target=\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306F\u73FE\u5728\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002{1}\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
+
+# 0: target, 1: target
+compiler.warn.option.parameters.unsupported=-parameters\u306F\u3001\u30BF\u30FC\u30B2\u30C3\u30C8\u5024{0}\u3067\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002{1}\u4EE5\u964D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+
 compiler.warn.option.obsolete.suppression=\u5EC3\u6B62\u3055\u308C\u305F\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u3064\u3044\u3066\u306E\u8B66\u544A\u3092\u8868\u793A\u3057\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u306B\u306F\u3001-Xlint:\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
 
 # 0: name, 1: number, 2: number, 3: number, 4: number
@@ -1281,7 +1322,7 @@
 # 0: string
 compiler.warn.proc.file.reopening=''{0}''\u7528\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8907\u6570\u56DE\u4F5C\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059
 
-# 0: name
+# 0: string
 compiler.warn.proc.type.already.exists=\u30BF\u30A4\u30D7''{0}''\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u30BD\u30FC\u30B9\u30FB\u30D1\u30B9\u307E\u305F\u306F\u30AF\u30E9\u30B9\u30D1\u30B9\u306B\u5B58\u5728\u3057\u307E\u3059
 
 # 0: string
@@ -1339,7 +1380,7 @@
 
 compiler.warn.unchecked.cast.to.type=\u578B{0}\u3078\u306E\u7121\u691C\u67FB\u30AD\u30E3\u30B9\u30C8\u3067\u3059
 
-# 0: symbol kind, 1: name, 2: list of type, 3: list of type, 4: symbol kind, 5: symbol
+# 0: kind name, 1: name, 2: object, 3: object, 4: kind name, 5: symbol
 compiler.warn.unchecked.meth.invocation.applied=\u7121\u691C\u67FB\u30E1\u30BD\u30C3\u30C9\u547C\u51FA\u3057: {4} {5}\u306E{0} {1}\u306F\u6307\u5B9A\u3055\u308C\u305F\u578B\u306B\u9069\u7528\u3055\u308C\u307E\u3059\n\u671F\u5F85\u5024: {2}\n\u691C\u51FA\u5024: {3}
 
 # 0: type
@@ -1438,6 +1479,9 @@
 # 0: token
 compiler.err.expected={0}\u304C\u3042\u308A\u307E\u305B\u3093
 
+# 0: string
+compiler.err.expected.str={0}\u304C\u3042\u308A\u307E\u305B\u3093
+
 # 0: token, 1: token
 compiler.err.expected2={0}\u307E\u305F\u306F{1}\u304C\u3042\u308A\u307E\u305B\u3093
 
@@ -1623,6 +1667,7 @@
 # 0: type, 1: list of type
 compiler.misc.no.unique.maximal.instance.exists=\u578B\u5909\u6570{0}(\u4E0A\u9650{1})\u306E\u56FA\u6709\u306E\u6700\u5927\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093
 
+# 0: type, 1: list of type
 compiler.misc.no.unique.minimal.instance.exists=\u578B\u5909\u6570{0}(\u4E0B\u9650{1})\u306E\u56FA\u6709\u306E\u6700\u5C0F\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093
 
 # 0: type, 1: list of type
@@ -1631,14 +1676,17 @@
 # 0: type, 1: list of type
 compiler.misc.incompatible.eq.bounds=\u63A8\u8AD6\u5909\u6570{0}\u306B\u306F\u3001\u4E0D\u9069\u5408\u306A\u7B49\u4FA1\u5236\u7D04{1}\u304C\u3042\u308A\u307E\u3059
 
-# 0: type, 1: list of type, 2: list of type
-compiler.misc.incompatible.eq.upper.bounds=\u63A8\u8AD6\u5909\u6570{0}\u306B\u306F\u3001\u4E0D\u9069\u5408\u306A\u5883\u754C\u304C\u3042\u308A\u307E\u3059\n\u7B49\u4FA1\u5236\u7D04: {1}\n\u4E0A\u9650: {2}
-
-# 0: type, 1: list of type, 2: list of type
-compiler.misc.incompatible.upper.lower.bounds=\u63A8\u8AD6\u5909\u6570{0}\u306B\u306F\u3001\u4E0D\u9069\u5408\u306A\u5883\u754C\u304C\u3042\u308A\u307E\u3059\n\u4E0A\u9650: {1}\n\u4E0B\u9650: {2}
-
-# 0: type, 1: list of type, 2: list of type
-compiler.misc.incompatible.eq.lower.bounds=\u63A8\u8AD6\u5909\u6570{0}\u306B\u306F\u3001\u4E0D\u9069\u5408\u306A\u5883\u754C\u304C\u3042\u308A\u307E\u3059\n\u7B49\u4FA1\u5236\u7D04: {1}\n\u4E0B\u9650: {2}
+# 0: type, 1: fragment, 2: fragment
+compiler.misc.incompatible.bounds=\u63A8\u8AD6\u5909\u6570{0}\u306B\u306F\u3001\u4E0D\u9069\u5408\u306A\u5883\u754C\u304C\u3042\u308A\u307E\u3059\n{1}\n{2}
+
+# 0: list of type
+compiler.misc.lower.bounds=\u4E0B\u9650: {0}
+
+# 0: list of type
+compiler.misc.eq.bounds=\u7B49\u4FA1\u5236\u7D04: {0}
+
+# 0: list of type
+compiler.misc.upper.bounds=\u4E0B\u9650: {0}
 
 # 0: list of type, 1: type, 2: type
 compiler.misc.infer.no.conforming.instance.exists=\u578B\u5909\u6570{0}\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u5B58\u5728\u3057\u306A\u3044\u306E\u3067\u3001{1}\u306F{2}\u306B\u9069\u5408\u3057\u307E\u305B\u3093
@@ -1733,6 +1781,9 @@
 # 0: kind name, 1: name, 2: unused, 3: list of type
 compiler.err.cant.resolve.args=\u30B7\u30F3\u30DC\u30EB\u3092\u898B\u3064\u3051\u3089\u308C\u307E\u305B\u3093\n\u30B7\u30F3\u30DC\u30EB: {0} {1}({3})
 
+# 0: kind name, 1: name, 2: unused, 3: list of type
+compiler.misc.cant.resolve.args=\u30B7\u30F3\u30DC\u30EB\u3092\u898B\u3064\u3051\u3089\u308C\u307E\u305B\u3093\n\u30B7\u30F3\u30DC\u30EB: {0} {1}({3})
+
 # 0: kind name, 1: name, 2: list of type, 3: list of type
 compiler.err.cant.resolve.args.params=\u30B7\u30F3\u30DC\u30EB\u3092\u898B\u3064\u3051\u3089\u308C\u307E\u305B\u3093\n\u30B7\u30F3\u30DC\u30EB: {0} <{2}>{1}({3})
 
@@ -1884,6 +1935,25 @@
 # 0: message segment (feature), 1: string (found version), 2: string (expected version)
 compiler.misc.feature.not.supported.in.source.plural={0}\u306F-source {1}\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n({0}\u3092\u6709\u52B9\u306B\u3059\u308B\u306B\u306F-source {2}\u4EE5\u4E0A\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044)
 
+# 0: message segment (feature)
+compiler.err.preview.feature.disabled={0}\u306F\u30D7\u30EC\u30D3\u30E5\u30FC\u6A5F\u80FD\u3067\u3042\u308A\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\n({0}\u3092\u6709\u52B9\u306B\u3059\u308B\u306B\u306F--enable-preview\u3092\u4F7F\u7528\u3057\u307E\u3059)
+
+# 0: message segment (feature)
+compiler.err.preview.feature.disabled.plural={0}\u306F\u30D7\u30EC\u30D3\u30E5\u30FC\u6A5F\u80FD\u3067\u3042\u308A\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\n({0}\u3092\u6709\u52B9\u306B\u3059\u308B\u306B\u306F--enable-preview\u3092\u4F7F\u7528\u3057\u307E\u3059)
+
+# 0: file object (classfile), 1: string (expected version)
+compiler.err.preview.feature.disabled.classfile={0}\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306FJava SE {1}\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u6A5F\u80FD\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n(\u30D7\u30EC\u30D3\u30E5\u30FC\u6A5F\u80FD\u3092\u542B\u3080\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30ED\u30FC\u30C9\u3067\u304D\u308B\u3088\u3046\u306B\u3059\u308B\u306B\u306F\u3001--enable-preview\u3092\u4F7F\u7528\u3057\u307E\u3059)
+
+# 0: message segment (feature)
+compiler.warn.preview.feature.use={0}\u306F\u30D7\u30EC\u30D3\u30E5\u30FC\u6A5F\u80FD\u3067\u3042\u308A\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
+
+# 0: message segment (feature)
+compiler.warn.preview.feature.use.plural={0}\u306F\u30D7\u30EC\u30D3\u30E5\u30FC\u6A5F\u80FD\u3067\u3042\u308A\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
+
+# 0: file object (classfile), 1: string (expected version)
+compiler.warn.preview.feature.use.classfile={0}\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306FJava SE {1}\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u6A5F\u80FD\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
+
+
 compiler.misc.feature.modules=\u30E2\u30B8\u30E5\u30FC\u30EB
 
 compiler.misc.feature.diamond.and.anon.class=\u533F\u540D\u5185\u90E8\u30AF\u30E9\u30B9\u3067\u306E''<>''
@@ -1933,7 +2003,7 @@
 compiler.err.assert.as.identifier=\u30EA\u30EA\u30FC\u30B91.4\u304B\u3089''assert''\u306F\u30AD\u30FC\u30EF\u30FC\u30C9\u306A\u306E\u3067\u8B58\u5225\u5B50\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
 
 # TODO 308: make a better error message
-compiler.err.this.as.identifier=\u30EA\u30EA\u30FC\u30B98\u304B\u3089''this''\u306F\u53D7\u4FE1\u30BF\u30A4\u30D7\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3068\u3057\u3066\u306E\u307F\u8A31\u53EF\u3055\u308C\u3001\u6700\u521D\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
+compiler.err.this.as.identifier=\u30EA\u30EA\u30FC\u30B98\u304B\u3089''this''\u306F\u53D7\u4FE1\u30BF\u30A4\u30D7\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3068\u3057\u3066\u306E\u307F\u8A31\u53EF\u3055\u308C\u307E\u3059\n\u3053\u308C\u306F\u6700\u521D\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u3001\u30E9\u30E0\u30C0\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u306F\u3067\u304D\u307E\u305B\u3093
 
 compiler.err.receiver.parameter.not.applicable.constructor.toplevel.class=\u53D7\u53D6\u308A\u5074\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u6700\u4E0A\u4F4D\u30EC\u30D9\u30EB\u30FB\u30AF\u30E9\u30B9\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306B\u9069\u7528\u3067\u304D\u307E\u305B\u3093
 
@@ -1986,6 +2056,14 @@
 compiler.note.deferred.method.inst=\u30E1\u30BD\u30C3\u30C9{0}\u306E\u9045\u5EF6\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\n\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3055\u308C\u305F\u30B7\u30B0\u30CD\u30C1\u30E3: {1}\n\u30BF\u30FC\u30B2\u30C3\u30C8\u578B: {2}
 
 ########################################
+# Diagnostics for lambda deduplication
+# used by LambdaToMethod (debug only)
+########################################
+
+# 0: symbol
+compiler.note.verbose.l2m.deduplicate=\u91CD\u8907\u9664\u5916\u30E9\u30E0\u30C0\u5B9F\u88C5\u30E1\u30BD\u30C3\u30C9{0}
+
+########################################
 # Diagnostics for where clause implementation
 # used by the RichDiagnosticFormatter.
 ########################################
@@ -2260,3 +2338,90 @@
 
 # 0: string, 1: string
 compiler.err.illegal.argument.for.option={0}\u306E\u5F15\u6570\u304C\u4E0D\u6B63\u3067\u3059: {1}
+
+
+############################################
+# messages previouly at javac.properties
+
+compiler.err.empty.A.argument=-A\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002''-Akey''\u307E\u305F\u306F''-Akey=value''\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
+
+# 0: string
+compiler.err.invalid.A.key=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3''{0}''\u306E\u30AD\u30FC\u306B\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u4E00\u9023\u306E\u8B58\u5225\u5B50\u304C\u3001\u30C9\u30C3\u30C8\u3067\u533A\u5207\u3089\u308C\u3066\u3044\u307E\u305B\u3093
+
+# 0: string
+compiler.err.invalid.flag={0}\u306F\u7121\u52B9\u306A\u30D5\u30E9\u30B0\u3067\u3059
+
+compiler.err.profile.bootclasspath.conflict=profile\u3068bootclasspath\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u540C\u6642\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
+
+# 0: string
+compiler.err.invalid.profile=\u7121\u52B9\u306A\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB: {0}
+
+# 0: string
+compiler.err.invalid.target={0}\u306F\u7121\u52B9\u306A\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u3059
+
+# 0: option name, 1: target
+compiler.err.option.not.allowed.with.target=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306F\u30BF\u30FC\u30B2\u30C3\u30C8{1}\u3068\u3068\u3082\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093
+
+# 0: string
+compiler.err.option.too.many=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u3092\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F1\u56DE\u306E\u307F\u3067\u3059
+
+compiler.err.no.source.files=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093
+
+compiler.err.no.source.files.classes=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30AF\u30E9\u30B9\u540D\u304C\u3042\u308A\u307E\u305B\u3093
+
+# 0: string
+compiler.err.req.arg={0}\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059
+
+# 0: string
+compiler.err.invalid.source={0}\u306F\u7121\u52B9\u306A\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u3059
+
+# 0: string, 1: string
+compiler.err.error.writing.file={0}\u306E\u66F8\u8FBC\u307F\u30A8\u30E9\u30FC\u3067\u3059\u3002{1}
+
+compiler.err.sourcepath.modulesourcepath.conflict=--source-path\u3068--module-source-path\u306E\u4E21\u65B9\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093
+
+# 0: string, 1: target
+compiler.warn.source.target.conflict=\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u306B\u306F\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{1}\u304C\u5FC5\u8981\u3067\u3059
+
+# 0: string, 1: target
+compiler.warn.target.default.source.conflict=\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u304C\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9{1}\u3068\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059
+
+# 0: profile, 1: target
+compiler.warn.profile.target.conflict=\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB{0}\u306F\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{1}\u306B\u5BFE\u3057\u3066\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093
+
+# 0: string
+compiler.err.file.not.directory=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093: {0}
+
+# 0: object
+compiler.err.file.not.file=\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093: {0}
+
+compiler.err.two.class.loaders.1=javac\u304C\u8907\u6570\u306E\u30AF\u30E9\u30B9\u30FB\u30ED\u30FC\u30C0\u30FC\u9593\u3067\u5206\u5272\u3055\u308C\u3066\u3044\u307E\u3059: \u69CB\u6210\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044
+
+# 0: url, 1: url
+compiler.err.two.class.loaders.2=javac\u304C\u8907\u6570\u306E\u30AF\u30E9\u30B9\u30FB\u30ED\u30FC\u30C0\u30FC\u9593\u3067\u5206\u5272\u3055\u308C\u3066\u3044\u307E\u3059:\n\u30AF\u30E9\u30B9\u306E\u53D6\u5F97\u5143\u30D5\u30A1\u30A4\u30EB: {0}\njavac\u306E\u53D6\u5F97\u5143: {1}
+
+# 0: string, 1: string
+compiler.err.bad.value.for.option={0}\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5024\u304C\u4E0D\u6B63\u3067\u3059: ''{1}''
+
+# 0: string
+compiler.err.no.value.for.option={0}\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5024\u304C\u3042\u308A\u307E\u305B\u3093
+
+# 0: string
+compiler.err.repeated.value.for.patch.module={0}\u306B\u5BFE\u3057\u3066--patch-module\u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059
+
+# 0: string
+compiler.err.unmatched.quote=\u74B0\u5883\u5909\u6570{0}\u306E\u5F15\u7528\u7B26\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093
+
+# 0: option name
+compiler.err.release.bootclasspath.conflict=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306F--release\u3068\u4E00\u7DD2\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
+
+# 0: string
+compiler.err.unsupported.release.version=\u30EA\u30EA\u30FC\u30B9\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+
+# 0: string
+compiler.err.file.not.found=\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+
+# 0: string, 1: source
+compiler.err.preview.not.latest=--enable-preview\u304C\u6307\u5B9A\u3055\u308C\u305F\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u306F\u7121\u52B9\u3067\u3059\n(\u30D7\u30EC\u30D3\u30E5\u30FC\u8A00\u8A9E\u6A5F\u80FD\u306F\u30EA\u30EA\u30FC\u30B9{1}\u3067\u306E\u307F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u3059)
+
+compiler.err.preview.without.source.or.release=--enable-preview\u306F-source\u307E\u305F\u306F--release\u3068\u3068\u3082\u306B\u4F7F\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -39,13 +39,18 @@
 # name              a name, typically a Java identifier
 # number            an integer
 # option name       the name of a command line option
-# source version    a source version number, such as 1.5, 1.6, 1.7
+# path              a path
+# profile           a profile name
+# source            a source version number, such as 1.5, 1.6, 1.7, taken from a com.sun.tools.javac.code.Source
+# source version    a source version number, such as 1.5, 1.6, 1.7, taken from a javax.lang.model.SourceVersion
 # string            a general string
 # symbol            the name of a declared type
 # symbol kind       the kind of a symbol (i.e. method, variable)
 # kind name         an informative description of the kind of a declaration; see compiler.misc.kindname.*
+# target            a target version number, such as 1.5, 1.6, 1.7, taken from a com.sun.tools.javac.jvm.Target
 # token             the name of a non-terminal in source code; see compiler.misc.token.*
 # type              a Java type; e.g. int, X, X<T>
+# url               a URL
 # object            a Java object (unspecified)
 # unused            the value is not used in this message
 #
@@ -212,7 +217,7 @@
 # 0: kind name, 1: message segment
 compiler.err.invalid.mref={0}\u5F15\u7528\u65E0\u6548\n{1}
 
-# 0: symbol kind, 1: message segment
+# 0: kind name, 1: message segment
 compiler.misc.invalid.mref={0}\u5F15\u7528\u65E0\u6548\n{1}
 
 compiler.misc.static.mref.with.targs=\u6709\u5173\u9759\u6001\u65B9\u6CD5\u5F15\u7528\u7684\u53C2\u6570\u5316\u9650\u5B9A\u7B26
@@ -460,8 +465,8 @@
 # 0: type, 1: type
 compiler.err.incomparable.types=\u4E0D\u53EF\u6BD4\u8F83\u7684\u7C7B\u578B: {0}\u548C{1}
 
-# 0: number
-compiler.err.int.number.too.large=\u8FC7\u5927\u7684\u6574\u6570: {0}
+# 0: string
+compiler.err.int.number.too.large=\u6574\u6570\u592A\u5927
 
 compiler.err.intf.annotation.members.cant.have.params=\u6CE8\u91CA\u7C7B\u578B\u58F0\u660E\u4E2D\u7684\u5143\u7D20\u65E0\u6CD5\u58F0\u660E\u5F62\u53C2
 
@@ -493,6 +498,8 @@
 
 compiler.err.array.and.receiver =\u63A5\u6536\u65B9\u53C2\u6570\u4E0D\u5141\u8BB8\u4F7F\u7528\u4F20\u7EDF\u6570\u7EC4\u8BB0\u53F7
 
+compiler.err.wrong.receiver =\u9519\u8BEF\u7684\u63A5\u6536\u65B9\u53C2\u6570\u540D
+
 compiler.err.variable.not.allowed=\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528\u53D8\u91CF\u58F0\u660E
 
 # 0: name
@@ -786,9 +793,6 @@
 
 compiler.err.signature.doesnt.match.intf=\u7B7E\u540D\u4E0E{0}\u4E0D\u5339\u914D; \u4E0D\u517C\u5BB9\u7684\u63A5\u53E3
 
-# 0: number, 1: number
-compiler.err.method.invoked.with.incorrect.number.arguments=\u4F7F\u7528\u4E0D\u6B63\u786E\u6570\u91CF\u7684\u53C2\u6570\u8C03\u7528\u4E86\u65B9\u6CD5; \u9884\u671F\u4E3A {0} \u4E2A, \u627E\u5230 {1} \u4E2A
-
 # 0: symbol, 1: symbol, 2: symbol
 compiler.err.does.not.override.abstract={0}\u4E0D\u662F\u62BD\u8C61\u7684, \u5E76\u4E14\u672A\u8986\u76D6{2}\u4E2D\u7684\u62BD\u8C61\u65B9\u6CD5{1}
 
@@ -802,8 +806,14 @@
 
 compiler.err.string.const.req=\u9700\u8981\u5E38\u91CF\u5B57\u7B26\u4E32\u8868\u8FBE\u5F0F
 
+# 0: symbol, 1: fragment
+compiler.err.cannot.generate.class=\u751F\u6210\u7C7B {0} \u65F6\u51FA\u9519\n({1})
+
 # 0: symbol, 1: symbol
-compiler.err.synthetic.name.conflict=\u7B26\u53F7{0}\u4E0E{1}\u4E2D\u7684 compiler-synthesized \u7B26\u53F7\u51B2\u7A81
+compiler.misc.synthetic.name.conflict=\u7B26\u53F7{0}\u4E0E{1}\u4E2D\u7684 compiler-synthesized \u7B26\u53F7\u51B2\u7A81
+
+# 0: symbol, 1: type
+compiler.misc.illegal.signature=\u7C7B\u578B {1} \u7684\u7B7E\u540D\u5C5E\u6027\u975E\u6CD5
 
 compiler.err.throws.not.allowed.in.intf.annotation=@interface \u6210\u5458\u4E2D\u4E0D\u5141\u8BB8\u4F7F\u7528 throws \u5B50\u53E5
 
@@ -822,14 +832,17 @@
 
 compiler.err.type.var.more.than.once.in.result=\u7C7B\u578B\u53D8\u91CF{0}\u5728{1}\u7684\u7C7B\u578B\u4E2D\u591A\u6B21\u51FA\u73B0; \u5FC5\u987B\u5BF9\u5176\u8FDB\u884C\u5B9E\u4F8B\u5316
 
-# 0: type, 1: type, 2: string
-compiler.err.types.incompatible.diff.ret=\u7C7B\u578B{0}\u548C{1}\u4E0D\u517C\u5BB9; \u4E24\u8005\u90FD\u5B9A\u4E49\u4E86{2}, \u4F46\u5374\u5E26\u6709\u4E0D\u76F8\u5173\u7684\u8FD4\u56DE\u7C7B\u578B
+# 0: type, 1: type, 2: fragment
+compiler.err.types.incompatible=\u7C7B\u578B {0} \u548C {1} \u4E0D\u517C\u5BB9\uFF1B\n{2}
+
+# 0: name, 1: list of type
+compiler.misc.incompatible.diff.ret=\u4E24\u8005\u90FD\u5B9A\u4E49\u4E86 {0}({1})\uFF0C\u4F46\u5374\u5E26\u6709\u4E0D\u76F8\u5173\u7684\u8FD4\u56DE\u7C7B\u578B
 
 # 0: kind name, 1: type, 2: name, 3: list of type, 4: symbol, 5: symbol
-compiler.err.types.incompatible.unrelated.defaults={0} {1}\u4ECE\u7C7B\u578B {4} \u548C {5} \u4E2D\u7EE7\u627F\u4E86{2}({3}) \u7684\u4E0D\u76F8\u5173\u9ED8\u8BA4\u503C
+compiler.misc.incompatible.unrelated.defaults={0} {1}\u4ECE\u7C7B\u578B {4} \u548C {5} \u4E2D\u7EE7\u627F\u4E86{2}({3}) \u7684\u4E0D\u76F8\u5173\u9ED8\u8BA4\u503C
 
 # 0: kind name, 1: type, 2: name, 3: list of type, 4: symbol, 5: symbol
-compiler.err.types.incompatible.abstract.default={0} {1}\u4ECE\u7C7B\u578B {4} \u548C {5} \u4E2D\u7EE7\u627F\u4E86{2}({3}) \u7684\u62BD\u8C61\u548C\u9ED8\u8BA4\u503C
+compiler.misc.incompatible.abstract.default={0} {1}\u4ECE\u7C7B\u578B {4} \u548C {5} \u4E2D\u7EE7\u627F\u4E86{2}({3}) \u7684\u62BD\u8C61\u548C\u9ED8\u8BA4\u503C
 
 # 0: name, 1: kind name, 2: symbol
 compiler.err.default.overrides.object.member={1} {2} \u4E2D\u7684\u9ED8\u8BA4\u65B9\u6CD5{0}\u8986\u76D6\u4E86 java.lang.Object \u7684\u6210\u5458
@@ -860,13 +873,11 @@
 # 0: name
 compiler.err.undef.label=\u672A\u5B9A\u4E49\u7684\u6807\u7B7E: {0}
 
-# 0: name (type)
-compiler.err.illegal.ref.to.var.type=\u5BF9\u53D7\u9650\u5236\u7C7B\u578B ''{0}'' \u7684\u5F15\u7528\u975E\u6CD5
-
-# 0: token
-compiler.err.var.not.allowed=\u4ECE\u53D1\u884C\u7248 10 \u5F00\u59CB,\n\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528 ''{0}'', ''{0}'' \u662F\u53D7\u9650\u5236\u7684\u672C\u5730\u53D8\u91CF\u7C7B\u578B, \u65E0\u6CD5\u7528\u4E8E\u7C7B\u578B\u58F0\u660E
-
-compiler.warn.var.not.allowed=\u4ECE\u53D1\u884C\u7248 10 \u5F00\u59CB\uFF0C''var'' \u662F\u53D7\u9650\u5236\u7684\u672C\u5730\u53D8\u91CF\u7C7B\u578B\uFF0C\u65E0\u6CD5\u7528\u4E8E\u7C7B\u578B\u58F0\u660E
+compiler.err.illegal.ref.to.var.type=\u5BF9\u53D7\u9650\u5236\u7C7B\u578B ''var'' \u7684\u5F15\u7528\u975E\u6CD5
+
+compiler.err.var.not.allowed=\u4ECE\u53D1\u884C\u7248 10 \u5F00\u59CB\uFF0C\n\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528 ''var''\uFF0C''var'' \u662F\u53D7\u9650\u5236\u7684\u672C\u5730\u53D8\u91CF\u7C7B\u578B\uFF0C\u65E0\u6CD5\u7528\u4E8E\u7C7B\u578B\u58F0\u660E
+
+compiler.warn.var.not.allowed=\u4ECE\u53D1\u884C\u7248 10 \u5F00\u59CB\uFF0C''var'' \u662F\u53D7\u9650\u5236\u7684\u672C\u5730\u53D8\u91CF\u7C7B\u578B\uFF0C\u65E0\u6CD5\u7528\u4E8E\u7C7B\u578B\u58F0\u660E\uFF0C\u4E5F\u65E0\u6CD5\u7528\u4F5C\u6570\u7EC4\u7684\u5143\u7D20\u7C7B\u578B
 
 # 0: name (variable), 1: message segment
 compiler.err.cant.infer.local.var.type=\u65E0\u6CD5\u63A8\u65AD\u672C\u5730\u53D8\u91CF {0} \u7684\u7C7B\u578B\n({1})
@@ -877,6 +888,15 @@
 
 compiler.err.var.not.allowed.compound=''var'' \u4E0D\u5141\u8BB8\u5728\u590D\u5408\u58F0\u660E\u4E2D\u4F7F\u7528
 
+# 0: fragment
+compiler.err.invalid.lambda.parameter.declaration=\u65E0\u6548\u7684 lambda \u53C2\u6570\u58F0\u660E\n({0})
+
+compiler.misc.implicit.and.explicit.not.allowed=\u4E0D\u80FD\u5C06\u9690\u5F0F\u7C7B\u578B\u548C\u663E\u5F0F\u7C7B\u578B\u7684\u53C2\u6570\u6DF7\u5408\u4F7F\u7528
+
+compiler.misc.var.and.explicit.not.allowed=\u4E0D\u80FD\u5C06 ''var'' \u548C\u663E\u5F0F\u7C7B\u578B\u7684\u53C2\u6570\u6DF7\u5408\u4F7F\u7528
+
+compiler.misc.var.and.implicit.not.allowed=\u4E0D\u80FD\u5C06 ''var'' \u548C\u9690\u5F0F\u7C7B\u578B\u7684\u53C2\u6570\u6DF7\u5408\u4F7F\u7528
+
 compiler.misc.local.cant.infer.null=\u53D8\u91CF\u521D\u59CB\u5316\u7A0B\u5E8F\u4E3A ''null''
 
 compiler.misc.local.cant.infer.void=\u53D8\u91CF\u521D\u59CB\u5316\u7A0B\u5E8F\u4E3A ''void''
@@ -1097,6 +1117,20 @@
 
 compiler.note.unchecked.plural.additional=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u8FD8\u4F7F\u7528\u4E86\u672A\u7ECF\u68C0\u67E5\u6216\u4E0D\u5B89\u5168\u7684\u64CD\u4F5C\u3002
 
+# 0: file name
+compiler.note.preview.filename={0} \u4F7F\u7528\u9884\u89C8\u8BED\u8A00\u529F\u80FD\u3002
+
+compiler.note.preview.plural=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u4F7F\u7528\u9884\u89C8\u8BED\u8A00\u529F\u80FD\u3002
+
+# The following string may appear after one of the above deprecation
+# messages.
+compiler.note.preview.recompile=\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u4F7F\u7528 -Xlint:preview \u91CD\u65B0\u7F16\u8BD1\u3002
+
+# 0: file name
+compiler.note.preview.filename.additional={0} \u8FD8\u4F7F\u7528\u9884\u89C8\u8BED\u8A00\u529F\u80FD\u3002
+
+compiler.note.preview.plural.additional=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u8FD8\u4F7F\u7528\u9884\u89C8\u8BED\u8A00\u529F\u80FD\u3002
+
 # Notes related to annotation processing
 
 # Print a client-generated note; assumed to be localized, no translation required
@@ -1206,6 +1240,9 @@
 # 0: type, 1: type
 compiler.warn.inexact.non-varargs.call=\u6700\u540E\u4E00\u4E2A\u53C2\u6570\u4F7F\u7528\u4E86\u4E0D\u51C6\u786E\u7684\u53D8\u91CF\u7C7B\u578B\u7684 varargs \u65B9\u6CD5\u7684\u975E varargs \u8C03\u7528; \n\u5BF9\u4E8E varargs \u8C03\u7528, \u5E94\u4F7F\u7528 {0}\n\u5BF9\u4E8E\u975E varargs \u8C03\u7528, \u5E94\u4F7F\u7528 {1}, \u8FD9\u6837\u4E5F\u53EF\u4EE5\u6291\u5236\u6B64\u8B66\u544A
 
+# 0: target, 1: target
+compiler.err.bad.target.sigpoly.call=-target {0} \u4E2D\u4E0D\u652F\u6301\u591A\u6001\u7B7E\u540D\u8C03\u7528\n\uFF08\u8BF7\u4F7F\u7528 -target {1} \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528\u591A\u6001\u7B7E\u540D\u8C03\u7528\uFF09
+
 # 0: list of type
 compiler.warn.unreachable.catch=catch \u5B50\u53E5\u65E0\u6CD5\u8BBF\u95EE\n\u5DF2\u6355\u83B7\u5230\u629B\u51FA\u7684\u7C7B\u578B{0}
 
@@ -1247,7 +1284,7 @@
 # 0: file name, 1: number, 2: number
 compiler.warn.big.major.version={0}: \u4E3B\u7248\u672C {1} \u6BD4 {2} \u65B0, \u6B64\u7F16\u8BD1\u5668\u652F\u6301\u6700\u65B0\u7684\u4E3B\u7248\u672C\u3002\n\u5EFA\u8BAE\u5347\u7EA7\u6B64\u7F16\u8BD1\u5668\u3002
 
-# 0: symbol kind, 1: symbol
+# 0: kind name, 1: symbol
 compiler.warn.static.not.qualified.by.type=static {0}\u5E94\u7531\u7C7B\u578B\u540D\u79F0{1}\u800C\u4E0D\u662F\u8868\u8FBE\u5F0F\u9650\u5B9A
 
 # 0: string
@@ -1256,15 +1293,19 @@
 # 0: string
 compiler.warn.option.obsolete.source=\u6E90\u503C{0}\u5DF2\u8FC7\u65F6, \u5C06\u5728\u672A\u6765\u6240\u6709\u53D1\u884C\u7248\u4E2D\u5220\u9664
 
-# 0: string
+# 0: target
 compiler.warn.option.obsolete.target=\u76EE\u6807\u503C{0}\u5DF2\u8FC7\u65F6, \u5C06\u5728\u672A\u6765\u6240\u6709\u53D1\u884C\u7248\u4E2D\u5220\u9664
 
 # 0: string, 1: string
 compiler.err.option.removed.source=\u4E0D\u518D\u652F\u6301\u6E90\u9009\u9879 {0}\u3002\u8BF7\u4F7F\u7528 {1} \u6216\u66F4\u9AD8\u7248\u672C\u3002
 
-# 0: string, 1: string
+# 0: target, 1: target
 compiler.err.option.removed.target=\u4E0D\u518D\u652F\u6301\u76EE\u6807\u9009\u9879 {0}\u3002\u8BF7\u4F7F\u7528 {1} \u6216\u66F4\u9AD8\u7248\u672C\u3002
 
+
+# 0: target, 1: target
+compiler.warn.option.parameters.unsupported=\u76EE\u6807\u503C {0} \u4E0D\u652F\u6301 -parameters\u3002\u8BF7\u4F7F\u7528 {1} \u6216\u66F4\u9AD8\u7248\u672C\u3002
+
 compiler.warn.option.obsolete.suppression=\u8981\u9690\u85CF\u6709\u5173\u5DF2\u8FC7\u65F6\u9009\u9879\u7684\u8B66\u544A, \u8BF7\u4F7F\u7528 -Xlint:-options\u3002
 
 # 0: name, 1: number, 2: number, 3: number, 4: number
@@ -1281,7 +1322,7 @@
 # 0: string
 compiler.warn.proc.file.reopening=\u5C1D\u8BD5\u591A\u6B21\u4E3A ''{0}'' \u521B\u5EFA\u6587\u4EF6
 
-# 0: name
+# 0: string
 compiler.warn.proc.type.already.exists=\u7C7B\u578B ''{0}'' \u7684\u6587\u4EF6\u5DF2\u7ECF\u5B58\u5728\u4E8E\u6E90\u8DEF\u5F84\u6216\u7C7B\u8DEF\u5F84\u4E2D
 
 # 0: string
@@ -1339,7 +1380,7 @@
 
 compiler.warn.unchecked.cast.to.type=\u5411\u7C7B\u578B{0}\u7684\u8F6C\u6362\u672A\u7ECF\u8FC7\u68C0\u67E5
 
-# 0: symbol kind, 1: name, 2: list of type, 3: list of type, 4: symbol kind, 5: symbol
+# 0: kind name, 1: name, 2: object, 3: object, 4: kind name, 5: symbol
 compiler.warn.unchecked.meth.invocation.applied=\u65B9\u6CD5\u8C03\u7528\u672A\u7ECF\u8FC7\u68C0\u67E5: \u5C06{4} {5}\u4E2D\u7684{0} {1}\u5E94\u7528\u5230\u7ED9\u5B9A\u7684\u7C7B\u578B\n\u9700\u8981: {2}\n\u627E\u5230: {3}
 
 # 0: type
@@ -1438,6 +1479,9 @@
 # 0: token
 compiler.err.expected=\u9700\u8981{0}
 
+# 0: string
+compiler.err.expected.str=\u9700\u8981 {0}
+
 # 0: token, 1: token
 compiler.err.expected2=\u9700\u8981{0}\u6216{1}
 
@@ -1623,6 +1667,7 @@
 # 0: type, 1: list of type
 compiler.misc.no.unique.maximal.instance.exists=\u5BF9\u4E8E\u4E0A\u9650\u4E3A{1}\u7684\u7C7B\u578B\u53D8\u91CF{0}, \u4E0D\u5B58\u5728\u552F\u4E00\u6700\u5927\u5B9E\u4F8B
 
+# 0: type, 1: list of type
 compiler.misc.no.unique.minimal.instance.exists=\u5BF9\u4E8E\u4E0B\u9650\u4E3A{1}\u7684\u7C7B\u578B\u53D8\u91CF{0}, \u4E0D\u5B58\u5728\u552F\u4E00\u6700\u5C0F\u5B9E\u4F8B
 
 # 0: type, 1: list of type
@@ -1631,14 +1676,17 @@
 # 0: type, 1: list of type
 compiler.misc.incompatible.eq.bounds=\u63A8\u8BBA\u53D8\u91CF{0}\u5177\u6709\u4E0D\u517C\u5BB9\u7684\u7B49\u5F0F\u7EA6\u675F\u6761\u4EF6{1}
 
-# 0: type, 1: list of type, 2: list of type
-compiler.misc.incompatible.eq.upper.bounds=\u63A8\u8BBA\u53D8\u91CF {0} \u5177\u6709\u4E0D\u517C\u5BB9\u7684\u9650\u5236\u8303\u56F4\n\u7B49\u5F0F\u7EA6\u675F\u6761\u4EF6: {1}\n\u4E0A\u9650: {2}
-
-# 0: type, 1: list of type, 2: list of type
-compiler.misc.incompatible.upper.lower.bounds=\u63A8\u8BBA\u53D8\u91CF{0}\u5177\u6709\u4E0D\u517C\u5BB9\u7684\u8FB9\u754C\n\u4E0A\u9650: {1}\n\u4E0B\u9650: {2}
-
-# 0: type, 1: list of type, 2: list of type
-compiler.misc.incompatible.eq.lower.bounds=\u63A8\u8BBA\u53D8\u91CF{0}\u5177\u6709\u4E0D\u517C\u5BB9\u7684\u9650\u5236\u8303\u56F4\n\u7B49\u5F0F\u7EA6\u675F\u6761\u4EF6: {1}\n\u4E0B\u9650: {2}
+# 0: type, 1: fragment, 2: fragment
+compiler.misc.incompatible.bounds=\u63A8\u8BBA\u53D8\u91CF {0} \u5177\u6709\u4E0D\u517C\u5BB9\u7684\u4E0A\u9650\n{1}\n{2}
+
+# 0: list of type
+compiler.misc.lower.bounds=\u4E0B\u9650\uFF1A{0}
+
+# 0: list of type
+compiler.misc.eq.bounds=\u7B49\u5F0F\u7EA6\u675F\u6761\u4EF6\uFF1A{0}
+
+# 0: list of type
+compiler.misc.upper.bounds=\u4E0B\u9650\uFF1A{0}
 
 # 0: list of type, 1: type, 2: type
 compiler.misc.infer.no.conforming.instance.exists=\u4E0D\u5B58\u5728\u7C7B\u578B\u53D8\u91CF{0}\u7684\u5B9E\u4F8B, \u4EE5\u4F7F{1}\u4E0E{2}\u4E00\u81F4
@@ -1733,6 +1781,9 @@
 # 0: kind name, 1: name, 2: unused, 3: list of type
 compiler.err.cant.resolve.args=\u627E\u4E0D\u5230\u7B26\u53F7\n\u7B26\u53F7: {0} {1}({3})
 
+# 0: kind name, 1: name, 2: unused, 3: list of type
+compiler.misc.cant.resolve.args=\u627E\u4E0D\u5230\u7B26\u53F7\n\u7B26\u53F7: {0} {1}({3})
+
 # 0: kind name, 1: name, 2: list of type, 3: list of type
 compiler.err.cant.resolve.args.params=\u627E\u4E0D\u5230\u7B26\u53F7\n\u7B26\u53F7: {0} <{2}>{1}({3})
 
@@ -1884,6 +1935,25 @@
 # 0: message segment (feature), 1: string (found version), 2: string (expected version)
 compiler.misc.feature.not.supported.in.source.plural=-source {1} \u4E2D\u4E0D\u652F\u6301 {0}\n(\u8BF7\u4F7F\u7528 -source {2} \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528 {0})
 
+# 0: message segment (feature)
+compiler.err.preview.feature.disabled={0} \u662F\u9884\u89C8\u529F\u80FD\uFF0C\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u7981\u7528\u3002\n\uFF08\u8BF7\u4F7F\u7528 --enable-preview \u4EE5\u542F\u7528 {0}\uFF09
+
+# 0: message segment (feature)
+compiler.err.preview.feature.disabled.plural={0} \u662F\u9884\u89C8\u529F\u80FD\uFF0C\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u7981\u7528\u3002\n\uFF08\u8BF7\u4F7F\u7528 --enable-preview \u4EE5\u542F\u7528 {0}\uFF09
+
+# 0: file object (classfile), 1: string (expected version)
+compiler.err.preview.feature.disabled.classfile={0} \u7684\u7C7B\u6587\u4EF6\u4F7F\u7528 Java SE {1} \u7684\u9884\u89C8\u529F\u80FD\u3002\n\uFF08\u8BF7\u4F7F\u7528 --enable-preview \u4EE5\u5141\u8BB8\u52A0\u8F7D\u5305\u542B\u9884\u89C8\u529F\u80FD\u7684\u7C7B\u6587\u4EF6\uFF09
+
+# 0: message segment (feature)
+compiler.warn.preview.feature.use={0} \u662F\u9884\u89C8\u529F\u80FD\uFF0C\u53EF\u80FD\u4F1A\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664\u3002
+
+# 0: message segment (feature)
+compiler.warn.preview.feature.use.plural={0} \u662F\u9884\u89C8\u529F\u80FD\uFF0C\u53EF\u80FD\u4F1A\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664\u3002
+
+# 0: file object (classfile), 1: string (expected version)
+compiler.warn.preview.feature.use.classfile={0} \u7684\u7C7B\u6587\u4EF6\u4F7F\u7528 Java SE {1} \u7684\u9884\u89C8\u529F\u80FD\u3002
+
+
 compiler.misc.feature.modules=\u6A21\u5757
 
 compiler.misc.feature.diamond.and.anon.class=''<>'' \u5177\u6709\u533F\u540D\u7684\u5185\u90E8\u7C7B
@@ -1933,7 +2003,7 @@
 compiler.err.assert.as.identifier=\u4ECE\u53D1\u884C\u7248 1.4 \u5F00\u59CB, ''assert'' \u4E3A\u5173\u952E\u5B57, \u4E0D\u80FD\u7528\u4F5C\u6807\u8BC6\u7B26
 
 # TODO 308: make a better error message
-compiler.err.this.as.identifier=\u4ECE\u53D1\u884C\u7248 8 \u5F00\u59CB, ''this'' \u53EA\u80FD\u4F5C\u4E3A\u63A5\u6536\u65B9\u7C7B\u578B\u7684\u53C2\u6570\u540D, \u8BE5\u53C2\u6570\u5FC5\u987B\u4E3A\u7B2C\u4E00\u4E2A\u53C2\u6570
+compiler.err.this.as.identifier=\u4ECE\u53D1\u884C\u7248 8 \u5F00\u59CB\uFF0C''this'' \u53EA\u80FD\u4F5C\u4E3A\u63A5\u6536\u65B9\u7C7B\u578B\u7684\u53C2\u6570\u540D\uFF0C\n\u8BE5\u53C2\u6570\u5FC5\u987B\u4E3A\u7B2C\u4E00\u4E2A\u53C2\u6570\uFF0C\u5E76\u4E14\u4E0D\u80FD\u662F lambda \u53C2\u6570
 
 compiler.err.receiver.parameter.not.applicable.constructor.toplevel.class=\u63A5\u6536\u65B9\u53C2\u6570\u4E0D\u9002\u7528\u4E8E\u9876\u5C42\u7C7B\u7684\u6784\u9020\u5668
 
@@ -1986,6 +2056,14 @@
 compiler.note.deferred.method.inst=\u65B9\u6CD5 {0} \u7684\u5EF6\u8FDF\u5B9E\u4F8B\u5316\n\u5B9E\u4F8B\u5316\u7B7E\u540D: {1}\n\u76EE\u6807\u7C7B\u578B: {2}
 
 ########################################
+# Diagnostics for lambda deduplication
+# used by LambdaToMethod (debug only)
+########################################
+
+# 0: symbol
+compiler.note.verbose.l2m.deduplicate=\u6B63\u5728\u5BF9 lambda \u51FD\u6570\u5B9E\u73B0\u65B9\u6CD5 {0} \u8FDB\u884C\u91CD\u590D\u6570\u636E\u5220\u9664
+
+########################################
 # Diagnostics for where clause implementation
 # used by the RichDiagnosticFormatter.
 ########################################
@@ -2260,3 +2338,90 @@
 
 # 0: string, 1: string
 compiler.err.illegal.argument.for.option={0} \u7684\u53C2\u6570\u975E\u6CD5: {1}
+
+
+############################################
+# messages previouly at javac.properties
+
+compiler.err.empty.A.argument=-A \u9700\u8981\u4E00\u4E2A\u53C2\u6570; \u4F7F\u7528 ''-Akey'' \u6216 ''-Akey=value''
+
+# 0: string
+compiler.err.invalid.A.key=\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u9009\u9879 ''{0}'' \u4E2D\u7684\u5173\u952E\u5B57\u4E0D\u662F\u4EE5\u70B9\u5206\u9694\u7684\u6807\u8BC6\u7B26\u5E8F\u5217
+
+# 0: string
+compiler.err.invalid.flag=\u65E0\u6548\u7684\u6807\u8BB0: {0}
+
+compiler.err.profile.bootclasspath.conflict=\u6982\u8981\u4FE1\u606F\u548C\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u9009\u9879\u4E0D\u80FD\u540C\u65F6\u4F7F\u7528
+
+# 0: string
+compiler.err.invalid.profile=\u65E0\u6548\u7684\u914D\u7F6E\u6587\u4EF6\uFF1A{0}
+
+# 0: string
+compiler.err.invalid.target=\u65E0\u6548\u7684\u76EE\u6807\u53D1\u884C\u7248\uFF1A{0}
+
+# 0: option name, 1: target
+compiler.err.option.not.allowed.with.target=\u76EE\u6807 {1} \u4E0D\u5141\u8BB8\u9009\u9879 {0}
+
+# 0: string
+compiler.err.option.too.many=\u9009\u9879 {0} \u53EA\u80FD\u6307\u5B9A\u4E00\u6B21
+
+compiler.err.no.source.files=\u65E0\u6E90\u6587\u4EF6
+
+compiler.err.no.source.files.classes=\u65E0\u6E90\u6587\u4EF6\u6216\u7C7B\u540D
+
+# 0: string
+compiler.err.req.arg={0} \u9700\u8981\u53C2\u6570
+
+# 0: string
+compiler.err.invalid.source=\u65E0\u6548\u7684\u6E90\u53D1\u884C\u7248\uFF1A{0}
+
+# 0: string, 1: string
+compiler.err.error.writing.file=\u5199\u5165 {0} \u65F6\u51FA\u9519\uFF1B{1}
+
+compiler.err.sourcepath.modulesourcepath.conflict=\u65E0\u6CD5\u540C\u65F6\u6307\u5B9A --source-path \u4E0E --module-source-path
+
+# 0: string, 1: target
+compiler.warn.source.target.conflict=\u6E90\u53D1\u884C\u7248 {0} \u9700\u8981\u76EE\u6807\u53D1\u884C\u7248 {1}
+
+# 0: string, 1: target
+compiler.warn.target.default.source.conflict=\u76EE\u6807\u53D1\u884C\u7248 {0} \u4E0E\u9ED8\u8BA4\u7684\u6E90\u53D1\u884C\u7248 {1} \u51B2\u7A81
+
+# 0: profile, 1: target
+compiler.warn.profile.target.conflict=\u914D\u7F6E\u6587\u4EF6{0}\u5BF9\u4E8E\u76EE\u6807\u53D1\u884C\u7248 {1} \u65E0\u6548
+
+# 0: string
+compiler.err.file.not.directory=\u4E0D\u662F\u76EE\u5F55\uFF1A{0}
+
+# 0: object
+compiler.err.file.not.file=\u4E0D\u662F\u6587\u4EF6\uFF1A{0}
+
+compiler.err.two.class.loaders.1=javac \u5728\u591A\u4E2A\u7C7B\u52A0\u8F7D\u5668\u4E4B\u95F4\u62C6\u5206: \u8BF7\u68C0\u67E5\u914D\u7F6E
+
+# 0: url, 1: url
+compiler.err.two.class.loaders.2=javac \u5728\u591A\u4E2A\u7C7B\u52A0\u8F7D\u5668\u4E4B\u95F4\u62C6\u5206:\n\u4E00\u4E2A\u7C7B\u6765\u81EA\u6587\u4EF6: {0}\n\u800C javac \u6765\u81EA {1}
+
+# 0: string, 1: string
+compiler.err.bad.value.for.option={0} \u9009\u9879\u7684\u503C\u9519\u8BEF: ''{1}''
+
+# 0: string
+compiler.err.no.value.for.option={0} \u9009\u9879\u6CA1\u6709\u503C
+
+# 0: string
+compiler.err.repeated.value.for.patch.module=\u4E3A {0} \u591A\u6B21\u6307\u5B9A\u4E86 --patch-module
+
+# 0: string
+compiler.err.unmatched.quote=\u73AF\u5883\u53D8\u91CF {0} \u4E2D\u7684\u5F15\u53F7\u4E0D\u6210\u5BF9
+
+# 0: option name
+compiler.err.release.bootclasspath.conflict=\u9009\u9879 {0} \u4E0D\u80FD\u4E0E --release \u4E00\u8D77\u4F7F\u7528
+
+# 0: string
+compiler.err.unsupported.release.version=\u4E0D\u652F\u6301\u53D1\u884C\u7248\u672C {0}
+
+# 0: string
+compiler.err.file.not.found=\u627E\u4E0D\u5230\u6587\u4EF6: {0}
+
+# 0: string, 1: source
+compiler.err.preview.not.latest=\u6E90\u53D1\u884C\u7248 {0} \u4E0E --enable-preview \u4E00\u8D77\u4F7F\u7528\u65F6\u65E0\u6548\n\uFF08\u4EC5\u53D1\u884C\u7248 {1} \u652F\u6301\u9884\u89C8\u8BED\u8A00\u529F\u80FD\uFF09
+
+compiler.err.preview.without.source.or.release=--enable-preview \u5FC5\u987B\u4E0E -source \u6216 --release \u4E00\u8D77\u4F7F\u7528
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -152,6 +152,8 @@
 
 javac.opt.Xlint.desc.varargs=\u5B89\u5168\u3067\u306F\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308B\u53EF\u5909\u5F15\u6570\u30E1\u30BD\u30C3\u30C9\u306B\u3064\u3044\u3066\u8B66\u544A\u3057\u307E\u3059
 
+javac.opt.Xlint.desc.preview=\u30D7\u30EC\u30D3\u30E5\u30FC\u8A00\u8A9E\u6A5F\u80FD\u306E\u4F7F\u7528\u306B\u3064\u3044\u3066\u8B66\u544A\u3057\u307E\u3059
+
 javac.opt.Xdoclint=javadoc\u30B3\u30E1\u30F3\u30C8\u306E\u554F\u984C\u306B\u95A2\u3059\u308B\u63A8\u5968\u30C1\u30A7\u30C3\u30AF\u3092\u6709\u52B9\u306B\u3057\u307E\u3059
 # L10N: do not localize: all none
 javac.opt.Xdoclint.subopts = (all|none|[-]<group>)[/<access>]
@@ -174,6 +176,7 @@
 javac.opt.printProcessorInfo=\u30D7\u30ED\u30BB\u30C3\u30B5\u304C\u51E6\u7406\u3092\u4F9D\u983C\u3055\u308C\u308B\u6CE8\u91C8\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B
 javac.opt.userpathsfirst=\u30D6\u30FC\u30C8\u30FB\u30AF\u30E9\u30B9\u30D1\u30B9\u306E\u5F8C\u3067\u306F\u306A\u304F\u3001\u30D6\u30FC\u30C8\u30FB\u30AF\u30E9\u30B9\u30D1\u30B9\u306E\u524D\u306B\u30AF\u30E9\u30B9\u306E\u30AF\u30E9\u30B9\u30D1\u30B9\u304A\u3088\u3073\u30BD\u30FC\u30B9\u30FB\u30D1\u30B9\u3092\u691C\u7D22\u3059\u308B
 javac.opt.prefer=\u6697\u9ED9\u7684\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3055\u308C\u308B\u30AF\u30E9\u30B9\u306B\u3064\u3044\u3066\u3001\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3068\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u4E21\u65B9\u304C\u898B\u3064\u304B\u3063\u305F\u969B\u3069\u3061\u3089\u3092\u8AAD\u307F\u8FBC\u3080\u304B\u6307\u5B9A\u3059\u308B
+javac.opt.preview=\u30D7\u30EC\u30D3\u30E5\u30FC\u8A00\u8A9E\u6A5F\u80FD\u3092\u6709\u52B9\u306B\u3057\u307E\u3059\u3002-source\u307E\u305F\u306F--release\u3068\u3068\u3082\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002
 javac.opt.AT=\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u306E\u8AAD\u53D6\u308A\u30AA\u30D7\u30B7\u30E7\u30F3\u304A\u3088\u3073\u30D5\u30A1\u30A4\u30EB\u540D
 javac.opt.diags=\u8A3A\u65AD\u30E2\u30FC\u30C9\u306E\u9078\u629E
 javac.opt.addExports=<other-module>\u304CALL-UNNAMED\u3067\u3042\u308B\u5834\u5408\u3001\u305D\u306E\u5B9A\u7FA9\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u3089\u3001\u8FFD\u52A0\u30E2\u30B8\u30E5\u30FC\u30EB\u307E\u305F\u306F\n        \u3059\u3079\u3066\u306E\u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u6E08\u3068\u307F\u306A\u3055\u308C\u308B\u3088\u3046\u306B\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002
@@ -191,38 +194,6 @@
 javac.opt.inherit_runtime_environment=\u5B9F\u884C\u6642\u74B0\u5883\u304B\u3089\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30B7\u30B9\u30C6\u30E0\u69CB\u6210\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u7D99\u627F\u3057\u307E\u3059\u3002
 javac.opt.default.module.for.created.files=\u4F55\u3082\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u3001\u63A8\u5B9A\u578B\u306E\u5834\u5408\u3001\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306B\u3088\u3063\u3066\u4F5C\u6210\u3055\u308C\u308B\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\u3057\u307E\u3059\u3002
 
-## errors
-
-javac.err.empty.A.argument=-A\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002''-Akey''\u307E\u305F\u306F''-Akey=value''\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
-javac.err.invalid.arg={0}\u306F\u7121\u52B9\u306A\u5F15\u6570\u3067\u3059
-javac.err.invalid.A.key=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3''{0}''\u306E\u30AD\u30FC\u306B\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u4E00\u9023\u306E\u8B58\u5225\u5B50\u304C\u3001\u30C9\u30C3\u30C8\u3067\u533A\u5207\u3089\u308C\u3066\u3044\u307E\u305B\u3093
-javac.err.invalid.flag={0}\u306F\u7121\u52B9\u306A\u30D5\u30E9\u30B0\u3067\u3059
-javac.err.profile.bootclasspath.conflict=profile\u3068bootclasspath\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u540C\u6642\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
-javac.err.invalid.profile=\u7121\u52B9\u306A\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB: {0}
-javac.err.invalid.target={0}\u306F\u7121\u52B9\u306A\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u3059
-javac.err.option.not.allowed.with.target=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306F\u30BF\u30FC\u30B2\u30C3\u30C8{1}\u3068\u3068\u3082\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093
-javac.err.option.too.many=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u3092\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F1\u56DE\u306E\u307F\u3067\u3059
-javac.err.no.source.files=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093
-javac.err.no.source.files.classes=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30AF\u30E9\u30B9\u540D\u304C\u3042\u308A\u307E\u305B\u3093
-javac.err.req.arg={0}\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059
-javac.err.invalid.source={0}\u306F\u7121\u52B9\u306A\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u3059
-javac.err.error.writing.file={0}\u306E\u66F8\u8FBC\u307F\u30A8\u30E9\u30FC\u3067\u3059\u3002{1}
-javac.err.sourcepath.modulesourcepath.conflict=--source-path\u3068--module-source-path\u306E\u4E21\u65B9\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093
-javac.warn.source.target.conflict=\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u306B\u306F\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{1}\u304C\u5FC5\u8981\u3067\u3059
-javac.warn.target.default.source.conflict=\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u304C\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9{1}\u3068\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059
-javac.warn.profile.target.conflict=\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB{0}\u306F\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{1}\u306B\u5BFE\u3057\u3066\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093
-javac.err.file.not.found=\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
-javac.err.file.not.directory=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093: {0}
-javac.err.file.not.file=\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093: {0}
-javac.err.cannot.access.runtime.env=\u5B9F\u884C\u6642\u74B0\u5883\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093
-javac.err.two.class.loaders.1=javac\u304C\u8907\u6570\u306E\u30AF\u30E9\u30B9\u30FB\u30ED\u30FC\u30C0\u30FC\u9593\u3067\u5206\u5272\u3055\u308C\u3066\u3044\u307E\u3059: \u69CB\u6210\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044
-javac.err.two.class.loaders.2=javac\u304C\u8907\u6570\u306E\u30AF\u30E9\u30B9\u30FB\u30ED\u30FC\u30C0\u30FC\u9593\u3067\u5206\u5272\u3055\u308C\u3066\u3044\u307E\u3059:\n\u30AF\u30E9\u30B9\u306E\u53D6\u5F97\u5143\u30D5\u30A1\u30A4\u30EB: {0}\njavac\u306E\u53D6\u5F97\u5143: {1}
-javac.err.bad.value.for.option={0}\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5024\u304C\u4E0D\u6B63\u3067\u3059: ''{1}''
-javac.err.no.value.for.option={0}\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5024\u304C\u3042\u308A\u307E\u305B\u3093
-javac.err.repeated.value.for.patch.module={0}\u306B\u5BFE\u3057\u3066--patch-module\u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059
-
-javac.err.unmatched.quote=\u74B0\u5883\u5909\u6570%s\u306E\u5F15\u7528\u7B26\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093
-
 ## messages
 
 javac.msg.usage.header=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <source files>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002
@@ -243,7 +214,3 @@
 
 javac.version={0} {1}
 javac.fullVersion={0}\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"{1}"
-
-javac.err.release.bootclasspath.conflict=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306F--release\u3068\u4E00\u7DD2\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
-
-javac.err.unsupported.release.version=\u30EA\u30EA\u30FC\u30B9\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -152,6 +152,8 @@
 
 javac.opt.Xlint.desc.varargs=\u6709\u5173\u6F5C\u5728\u4E0D\u5B89\u5168\u7684 vararg \u65B9\u6CD5\u7684\u8B66\u544A
 
+javac.opt.Xlint.desc.preview=\u6709\u5173\u4F7F\u7528\u9884\u89C8\u8BED\u8A00\u529F\u80FD\u7684\u8B66\u544A
+
 javac.opt.Xdoclint=\u4E3A javadoc \u6CE8\u91CA\u4E2D\u7684\u95EE\u9898\u542F\u7528\u5EFA\u8BAE\u7684\u68C0\u67E5
 # L10N: do not localize: all none
 javac.opt.Xdoclint.subopts = (all|none|[-]<group>)[/<access>]
@@ -174,6 +176,7 @@
 javac.opt.printProcessorInfo=\u8F93\u51FA\u6709\u5173\u8BF7\u6C42\u5904\u7406\u7A0B\u5E8F\u5904\u7406\u54EA\u4E9B\u6CE8\u91CA\u7684\u4FE1\u606F
 javac.opt.userpathsfirst=\u5728\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u4E4B\u524D\u800C\u4E0D\u662F\u4E4B\u540E\u641C\u7D22\u7C7B\u7684\u7C7B\u8DEF\u5F84\u548C\u6E90\u8DEF\u5F84
 javac.opt.prefer=\u6307\u5B9A\u8BFB\u53D6\u6587\u4EF6, \u5F53\u540C\u65F6\u627E\u5230\u9690\u5F0F\u7F16\u8BD1\u7C7B\u7684\u6E90\u6587\u4EF6\u548C\u7C7B\u6587\u4EF6\u65F6
+javac.opt.preview=\u542F\u7528\u9884\u89C8\u8BED\u8A00\u529F\u80FD\u3002\u8981\u4E0E -source \u6216 --release \u4E00\u8D77\u4F7F\u7528\u3002
 javac.opt.AT=\u4ECE\u6587\u4EF6\u8BFB\u53D6\u9009\u9879\u548C\u6587\u4EF6\u540D
 javac.opt.diags=\u9009\u62E9\u8BCA\u65AD\u6A21\u5F0F
 javac.opt.addExports=\u6307\u5B9A\u88AB\u89C6\u4E3A\u5DF2\u4ECE\u5176\u5B9A\u4E49\u6A21\u5757\u5BFC\u51FA\u5230\u5176\u4ED6\u6A21\u5757\u6216\u8005\u5BFC\u51FA\u5230\u6240\u6709\n        \u672A\u547D\u540D\u6A21\u5757 (\u5982\u679C <other-module> \u4E3A ALL-UNNAMED) \u7684\u7A0B\u5E8F\u5305\u3002
@@ -191,38 +194,6 @@
 javac.opt.inherit_runtime_environment=\u4ECE\u8FD0\u884C\u65F6\u73AF\u5883\u7EE7\u627F\u6A21\u5757\u7CFB\u7EDF\u914D\u7F6E\u9009\u9879\u3002
 javac.opt.default.module.for.created.files=\u7531\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u521B\u5EFA\u7684\u6587\u4EF6\u7684\u5907\u7528\u76EE\u6807\u6A21\u5757 (\u5982\u679C\u672A\u6307\u5B9A\u6216\u63A8\u65AD\u4EFB\u4F55\u6A21\u5757)\u3002
 
-## errors
-
-javac.err.empty.A.argument=-A \u9700\u8981\u4E00\u4E2A\u53C2\u6570; \u4F7F\u7528 ''-Akey'' \u6216 ''-Akey=value''
-javac.err.invalid.arg=\u65E0\u6548\u7684\u53C2\u6570: {0}
-javac.err.invalid.A.key=\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u9009\u9879 ''{0}'' \u4E2D\u7684\u5173\u952E\u5B57\u4E0D\u662F\u4EE5\u70B9\u5206\u9694\u7684\u6807\u8BC6\u7B26\u5E8F\u5217
-javac.err.invalid.flag=\u65E0\u6548\u7684\u6807\u8BB0: {0}
-javac.err.profile.bootclasspath.conflict=\u6982\u8981\u4FE1\u606F\u548C\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u9009\u9879\u4E0D\u80FD\u540C\u65F6\u4F7F\u7528
-javac.err.invalid.profile=\u914D\u7F6E\u6587\u4EF6\u65E0\u6548: {0}
-javac.err.invalid.target=\u65E0\u6548\u7684\u76EE\u6807\u53D1\u884C\u7248: {0}
-javac.err.option.not.allowed.with.target=\u76EE\u6807 {1} \u4E0D\u5141\u8BB8\u9009\u9879 {0}
-javac.err.option.too.many=\u9009\u9879 {0} \u53EA\u80FD\u6307\u5B9A\u4E00\u6B21
-javac.err.no.source.files=\u65E0\u6E90\u6587\u4EF6
-javac.err.no.source.files.classes=\u65E0\u6E90\u6587\u4EF6\u6216\u7C7B\u540D
-javac.err.req.arg={0}\u9700\u8981\u53C2\u6570
-javac.err.invalid.source=\u65E0\u6548\u7684\u6E90\u53D1\u884C\u7248: {0}
-javac.err.error.writing.file=\u5199\u5165{0}\u65F6\u51FA\u9519; {1}
-javac.err.sourcepath.modulesourcepath.conflict=\u65E0\u6CD5\u540C\u65F6\u6307\u5B9A --source-path \u4E0E --module-source-path
-javac.warn.source.target.conflict=\u6E90\u53D1\u884C\u7248 {0} \u9700\u8981\u76EE\u6807\u53D1\u884C\u7248 {1}
-javac.warn.target.default.source.conflict=\u76EE\u6807\u53D1\u884C\u7248 {0} \u4E0E\u9ED8\u8BA4\u7684\u6E90\u53D1\u884C\u7248 {1} \u51B2\u7A81
-javac.warn.profile.target.conflict=\u914D\u7F6E\u6587\u4EF6{0}\u5BF9\u4E8E\u76EE\u6807\u53D1\u884C\u7248 {1} \u65E0\u6548
-javac.err.file.not.found=\u627E\u4E0D\u5230\u6587\u4EF6: {0}
-javac.err.file.not.directory=\u4E0D\u662F\u76EE\u5F55: {0}
-javac.err.file.not.file=\u4E0D\u662F\u6587\u4EF6: {0}
-javac.err.cannot.access.runtime.env=\u65E0\u6CD5\u8BBF\u95EE\u8FD0\u884C\u65F6\u73AF\u5883
-javac.err.two.class.loaders.1=javac \u5728\u591A\u4E2A\u7C7B\u52A0\u8F7D\u5668\u4E4B\u95F4\u62C6\u5206: \u8BF7\u68C0\u67E5\u914D\u7F6E
-javac.err.two.class.loaders.2=javac \u5728\u591A\u4E2A\u7C7B\u52A0\u8F7D\u5668\u4E4B\u95F4\u62C6\u5206:\n\u4E00\u4E2A\u7C7B\u6765\u81EA\u6587\u4EF6: {0}\n\u800C javac \u6765\u81EA {1}
-javac.err.bad.value.for.option={0} \u9009\u9879\u7684\u503C\u9519\u8BEF: ''{1}''
-javac.err.no.value.for.option={0} \u9009\u9879\u6CA1\u6709\u503C
-javac.err.repeated.value.for.patch.module=\u4E3A {0} \u591A\u6B21\u6307\u5B9A\u4E86 --patch-module
-
-javac.err.unmatched.quote=\u73AF\u5883\u53D8\u91CF %s \u4E2D\u7684\u5F15\u53F7\u4E0D\u6210\u5BF9
-
 ## messages
 
 javac.msg.usage.header=\u7528\u6CD5: {0} <options> <source files>\n\u5176\u4E2D, \u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC:
@@ -243,7 +214,3 @@
 
 javac.version={0} {1}
 javac.fullVersion={0}\u5B8C\u6574\u7248\u672C "{1}"
-
-javac.err.release.bootclasspath.conflict=\u9009\u9879 {0} \u4E0D\u80FD\u4E0E --release \u4E00\u8D77\u4F7F\u7528
-
-javac.err.unsupported.release.version=\u4E0D\u652F\u6301\u53D1\u884C\u7248\u672C {0}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,120 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# Messages in this file which use "placeholders" for values (e.g. {0}, {1})
+# are preceded by a stylized comment describing the type of the corresponding
+# values.
+# The simple types currently in use are:
+#
+# annotation        annotation compound
+# boolean           true or false
+# diagnostic        a sub-message; see compiler.misc.*
+# fragment          similar to 'message segment', but with more specific type
+# modifier          a Java modifier; e.g. public, private, protected
+# file              a file URL
+# file object       a file URL - similar to 'file' but typically used for source/class files, hence more specific
+# flag              a Flags.Flag instance
+# name              a name, typically a Java identifier
+# number            an integer
+# option name       the name of a command line option
+# source version    a source version number, such as 1.5, 1.6, 1.7
+# string            a general string
+# symbol            the name of a declared type
+# symbol kind       the kind of a symbol (i.e. method, variable)
+# kind name         an informative description of the kind of a declaration; see compiler.misc.kindname.*
+# token             the name of a non-terminal in source code; see compiler.misc.token.*
+# type              a Java type; e.g. int, X, X<T>
+# object            a Java object (unspecified)
+# unused            the value is not used in this message
+#
+# The following compound types are also used:
+#
+# collection of X   a comma-separated collection of items; e.g. collection of type
+# list of X         a comma-separated list of items; e.g. list of type
+# set of X          a comma-separated set of items; e.g. set of modifier
+#
+# These may be composed:
+#
+# list of type or message segment
+#
+# The following type aliases are supported:
+#
+# message segment --> diagnostic or fragment
+# file name --> file, path or file object
+#
+# Custom comments are supported in parenthesis i.e.
+#
+# number (classfile major version)
+#
+# These comments are used internally in order to generate an enum-like class declaration containing
+# a method/field for each of the diagnostic keys listed here. Those methods/fields can then be used
+# by javac code to build diagnostics in a type-safe fashion.
+#
+# In addition, these comments are verified by the jtreg test test/tools/javac/diags/MessageInfo,
+# using info derived from the collected set of examples in test/tools/javac/diags/examples.
+# MessageInfo can also be run as a standalone utility providing more facilities
+# for manipulating this file. For more details, see MessageInfo.java.
+
+## All errors are preceded by this string.
+launcher.error=\u30A8\u30E9\u30FC: 
+
+launcher.err.no.args=\u30D5\u30A1\u30A4\u30EB\u540D\u306A\u3057
+
+# 0: string
+launcher.err.invalid.filename=\u30D5\u30A1\u30A4\u30EB\u540D\u304C\u7121\u52B9\u3067\u3059: {0}
+
+# 0: path
+launcher.err.file.not.found=\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+
+launcher.err.compilation.failed=\u30B3\u30F3\u30D1\u30A4\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F
+
+launcher.err.no.class=\u30D5\u30A1\u30A4\u30EB\u3067\u30AF\u30E9\u30B9\u304C\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+
+launcher.err.main.not.public.static=''main'\u30E1\u30BD\u30C3\u30C9\u304C''public static''\u3068\u3057\u3066\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+
+launcher.err.main.not.void=''main'\u30E1\u30BD\u30C3\u30C9\u304C\u623B\u308A\u578B''void''\u3067\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+
+# 0: string
+launcher.err.cant.find.class=\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+
+# 0: string
+launcher.err.unexpected.class=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u306B\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F: {0}
+
+# 0: string
+launcher.err.cant.find.main.method=\u30AF\u30E9\u30B9\u306Bmain(String[])\u30E1\u30BD\u30C3\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+
+# 0: string
+launcher.err.cant.access.main.method=\u30AF\u30E9\u30B9\u306E\u30E1\u30A4\u30F3\u30FB\u30E1\u30BD\u30C3\u30C9\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093: {0}
+
+# 0: path, 1: object
+launcher.err.cant.read.file=\u30D5\u30A1\u30A4\u30EB{0}\u306E\u8AAD\u53D6\u308A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {1}
+
+# 0: string
+launcher.err.no.value.for.option=\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u5024\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093: {0}
+
+# 0: string
+launcher.err.invalid.value.for.source=--source\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5024\u304C\u7121\u52B9\u3067\u3059: {0}
+
+launcher.err.enable.preview.requires.source=--enable-preview\u306F--source\u3068\u3068\u3082\u306B\u4F7F\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,120 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# Messages in this file which use "placeholders" for values (e.g. {0}, {1})
+# are preceded by a stylized comment describing the type of the corresponding
+# values.
+# The simple types currently in use are:
+#
+# annotation        annotation compound
+# boolean           true or false
+# diagnostic        a sub-message; see compiler.misc.*
+# fragment          similar to 'message segment', but with more specific type
+# modifier          a Java modifier; e.g. public, private, protected
+# file              a file URL
+# file object       a file URL - similar to 'file' but typically used for source/class files, hence more specific
+# flag              a Flags.Flag instance
+# name              a name, typically a Java identifier
+# number            an integer
+# option name       the name of a command line option
+# source version    a source version number, such as 1.5, 1.6, 1.7
+# string            a general string
+# symbol            the name of a declared type
+# symbol kind       the kind of a symbol (i.e. method, variable)
+# kind name         an informative description of the kind of a declaration; see compiler.misc.kindname.*
+# token             the name of a non-terminal in source code; see compiler.misc.token.*
+# type              a Java type; e.g. int, X, X<T>
+# object            a Java object (unspecified)
+# unused            the value is not used in this message
+#
+# The following compound types are also used:
+#
+# collection of X   a comma-separated collection of items; e.g. collection of type
+# list of X         a comma-separated list of items; e.g. list of type
+# set of X          a comma-separated set of items; e.g. set of modifier
+#
+# These may be composed:
+#
+# list of type or message segment
+#
+# The following type aliases are supported:
+#
+# message segment --> diagnostic or fragment
+# file name --> file, path or file object
+#
+# Custom comments are supported in parenthesis i.e.
+#
+# number (classfile major version)
+#
+# These comments are used internally in order to generate an enum-like class declaration containing
+# a method/field for each of the diagnostic keys listed here. Those methods/fields can then be used
+# by javac code to build diagnostics in a type-safe fashion.
+#
+# In addition, these comments are verified by the jtreg test test/tools/javac/diags/MessageInfo,
+# using info derived from the collected set of examples in test/tools/javac/diags/examples.
+# MessageInfo can also be run as a standalone utility providing more facilities
+# for manipulating this file. For more details, see MessageInfo.java.
+
+## All errors are preceded by this string.
+launcher.error=\u9519\u8BEF: 
+
+launcher.err.no.args=\u65E0\u6587\u4EF6\u540D
+
+# 0: string
+launcher.err.invalid.filename=\u65E0\u6548\u7684\u6587\u4EF6\u540D\uFF1A{0}
+
+# 0: path
+launcher.err.file.not.found=\u627E\u4E0D\u5230\u6587\u4EF6: {0}
+
+launcher.err.compilation.failed=\u7F16\u8BD1\u5931\u8D25
+
+launcher.err.no.class=\u5728\u6587\u4EF6\u4E2D\u672A\u58F0\u660E\u7C7B
+
+launcher.err.main.not.public.static=''main'' \u65B9\u6CD5\u672A\u58F0\u660E ''public static''
+
+launcher.err.main.not.void=\u672A\u4F7F\u7528\u8FD4\u56DE\u7C7B\u578B ''void'' \u58F0\u660E ''main'' \u65B9\u6CD5
+
+# 0: string
+launcher.err.cant.find.class=\u627E\u4E0D\u5230\u7C7B\uFF1A{0}
+
+# 0: string
+launcher.err.unexpected.class=\u5728\u5E94\u7528\u7A0B\u5E8F\u7C7B\u8DEF\u5F84 {0} \u4E2D\u627E\u5230\u7C7B
+
+# 0: string
+launcher.err.cant.find.main.method=\u5728\u7C7B {0} \u4E2D\u627E\u4E0D\u5230 main(String[]) \u65B9\u6CD5
+
+# 0: string
+launcher.err.cant.access.main.method=\u65E0\u6CD5\u8BBF\u95EE\u7C7B {0} \u4E2D\u7684 main \u65B9\u6CD5
+
+# 0: path, 1: object
+launcher.err.cant.read.file=\u8BFB\u53D6\u6587\u4EF6 {0} \u65F6\u51FA\u9519\uFF1A{1}
+
+# 0: string
+launcher.err.no.value.for.option=\u6CA1\u6709\u4E3A\u9009\u9879 {0} \u6307\u5B9A\u503C
+
+# 0: string
+launcher.err.invalid.value.for.source=--source \u9009\u9879\u7684\u503C\u65E0\u6548\uFF1A{0}\n
+
+launcher.err.enable.preview.requires.source=--enable-preview \u5FC5\u987B\u4E0E --source \u4E00\u8D77\u4F7F\u7528
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java	Fri Jul 27 12:16:01 2018 +0100
@@ -507,6 +507,10 @@
         if (len == 0) {
             return;
         }
+        // check for overflow
+        if (len + bytesProcessed < 0) {
+            throw new ProviderException("Processed bytes limits exceeded.");
+        }
         switch (type) {
         case T_UPDATE:
             try {
--- a/src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/RSASignature.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/RSASignature.java	Fri Jul 27 12:16:01 2018 +0100
@@ -129,7 +129,7 @@
         @Override
         protected void engineUpdate(byte[] b, int off, int len)
                 throws SignatureException {
-            if (offset + len > precomputedDigest.length) {
+            if (len > (precomputedDigest.length - offset)) {
                 offset = RAW_RSA_MAX + 1;
                 return;
             }
@@ -144,7 +144,7 @@
             if (len <= 0) {
                 return;
             }
-            if (offset + len > precomputedDigest.length) {
+            if (len > (precomputedDigest.length - offset)) {
                 offset = RAW_RSA_MAX + 1;
                 return;
             }
@@ -363,17 +363,16 @@
 
         @Override
         protected AlgorithmParameters engineGetParameters() {
-            if (this.pssParams == null) {
-                throw new ProviderException("Missing required PSS parameters");
+            AlgorithmParameters ap = null;
+            if (this.pssParams != null) {
+                try {
+                    ap = AlgorithmParameters.getInstance("RSASSA-PSS");
+                    ap.init(this.pssParams);
+                } catch (GeneralSecurityException gse) {
+                    throw new ProviderException(gse.getMessage());
+                }
             }
-            try {
-                AlgorithmParameters ap =
-                        AlgorithmParameters.getInstance("RSASSA-PSS");
-                ap.init(this.pssParams);
-                return ap;
-            } catch (GeneralSecurityException gse) {
-                throw new ProviderException(gse.getMessage());
-            }
+            return ap;
         }
 
         private void ensureInit() throws SignatureException {
--- a/src/jdk.crypto.ucrypto/solaris/classes/com/oracle/security/ucrypto/NativeRSASignature.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.crypto.ucrypto/solaris/classes/com/oracle/security/ucrypto/NativeRSASignature.java	Fri Jul 27 12:16:01 2018 +0100
@@ -291,8 +291,9 @@
         throws SignatureException {
         boolean doCancel = true;
         try {
-            if (outbuf == null || (offset < 0) || (outbuf.length < (offset + sigLength))
-                || (len < sigLength)) {
+            if (outbuf == null || (offset < 0) ||
+                    ((outbuf.length - offset) < sigLength) ||
+                    (len < sigLength)) {
                 throw new SignatureException("Invalid output buffer. offset: " +
                     offset + ". len: " + len + ". sigLength: " + sigLength);
             }
@@ -357,8 +358,9 @@
         throws SignatureException {
         boolean doCancel = true;
         try {
-            if (sigBytes == null || (sigOfs < 0) || (sigBytes.length < (sigOfs + this.sigLength))
-                || (sigLen != this.sigLength)) {
+            if (sigBytes == null || (sigOfs < 0) ||
+                    ((sigBytes.length - sigOfs) < this.sigLength) ||
+                    (sigLen != this.sigLength)) {
                 throw new SignatureException("Invalid signature length: got " +
                     sigLen + " but was expecting " + this.sigLength);
             }
@@ -440,7 +442,7 @@
 
     // returns 0 (success) or negative (ucrypto error occurred)
     private int update(byte[] in, int inOfs, int inLen) {
-        if (inOfs < 0 || inOfs + inLen > in.length) {
+        if (inOfs < 0 || inOfs > (in.length - inLen)) {
             throw new ArrayIndexOutOfBoundsException("inOfs :" + inOfs +
                 ". inLen: " + inLen + ". in.length: " + in.length);
         }
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/LinuxDebuggerLocal.c	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/LinuxDebuggerLocal.c	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -66,6 +66,12 @@
 static jmethodID getThreadForThreadId_ID = 0;
 static jmethodID listAdd_ID = 0;
 
+/*
+ * SA_ALTROOT environment variable.
+ * This memory holds env string for putenv(3).
+ */
+static char *saaltroot = NULL;
+
 #define CHECK_EXCEPTION_(value) if ((*env)->ExceptionOccurred(env)) { return value; }
 #define CHECK_EXCEPTION if ((*env)->ExceptionOccurred(env)) { return;}
 #define THROW_NEW_DEBUGGER_EXCEPTION_(str, value) { throw_new_debugger_exception(env, str); return value; }
@@ -211,11 +217,34 @@
 
 /*
  * Class:     sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal
- * Method:    attach0
- * Signature: (I)V
+ * Method:    setSAAltRoot0
+ * Signature: (Ljava/lang/String;)V
  */
-JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_attach0__I
-  (JNIEnv *env, jobject this_obj, jint jpid) {
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_setSAAltRoot0
+  (JNIEnv *env, jobject this_obj, jstring altroot) {
+  if (saaltroot != NULL) {
+    free(saaltroot);
+  }
+  const char *path = (*env)->GetStringUTFChars(env, altroot, JNI_FALSE);
+  /*
+   * `saaltroot` is used for putenv().
+   * So we need to keep this memory.
+   */
+  static const char *PREFIX = "SA_ALTROOT=";
+  size_t len = strlen(PREFIX) + strlen(path) + 1;
+  saaltroot = (char *)malloc(len);
+  snprintf(saaltroot, len, "%s%s", PREFIX, path);
+  putenv(saaltroot);
+  (*env)->ReleaseStringUTFChars(env, altroot, path);
+}
+
+/*
+ * Class:     sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal
+ * Method:    attach0
+ * Signature: (IZ)V
+ */
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_attach0__IZ
+  (JNIEnv *env, jobject this_obj, jint jpid, jboolean is_in_container) {
 
   // For bitness checking, locate binary at /proc/jpid/exe
   char buf[PATH_MAX];
@@ -225,7 +254,7 @@
 
   char err_buf[200];
   struct ps_prochandle* ph;
-  if ( (ph = Pgrab(jpid, err_buf, sizeof(err_buf))) == NULL) {
+  if ((ph = Pgrab(jpid, err_buf, sizeof(err_buf), is_in_container)) == NULL) {
     char msg[230];
     snprintf(msg, sizeof(msg), "Can't attach to the process: %s", err_buf);
     THROW_NEW_DEBUGGER_EXCEPTION(msg);
@@ -276,6 +305,10 @@
   if (ph != NULL) {
      Prelease(ph);
   }
+  if (saaltroot != NULL) {
+    free(saaltroot);
+    saaltroot = NULL;
+  }
 }
 
 /*
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/libproc.h	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/libproc.h	Fri Jul 27 12:16:01 2018 +0100
@@ -87,7 +87,7 @@
 
 // attach to a process
 JNIEXPORT struct ps_prochandle* JNICALL
-Pgrab(pid_t pid, char* err_buf, size_t err_buf_len);
+Pgrab(pid_t pid, char* err_buf, size_t err_buf_len, bool is_in_container);
 
 // attach to a core dump
 JNIEXPORT struct ps_prochandle* JNICALL
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/ps_proc.c	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/ps_proc.c	Fri Jul 27 12:16:01 2018 +0100
@@ -28,6 +28,7 @@
 #include <signal.h>
 #include <errno.h>
 #include <elf.h>
+#include <dirent.h>
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <sys/ptrace.h>
@@ -374,7 +375,7 @@
 
 // attach to the process. One and only one exposed stuff
 JNIEXPORT struct ps_prochandle* JNICALL
-Pgrab(pid_t pid, char* err_buf, size_t err_buf_len) {
+Pgrab(pid_t pid, char* err_buf, size_t err_buf_len, bool is_in_container) {
   struct ps_prochandle* ph = NULL;
   thread_info* thr = NULL;
 
@@ -401,7 +402,32 @@
   read_lib_info(ph);
 
   // read thread info
-  read_thread_info(ph, add_new_thread);
+  if (is_in_container) {
+    /*
+     * If the process is running in the container, SA scans all tasks in
+     * /proc/<PID>/task to read all threads info.
+     */
+    char taskpath[PATH_MAX];
+    DIR *dirp;
+    struct dirent *entry;
+
+    snprintf(taskpath, PATH_MAX, "/proc/%d/task", ph->pid);
+    dirp = opendir(taskpath);
+    int lwp_id;
+    while ((entry = readdir(dirp)) != NULL) {
+      if (*entry->d_name == '.') {
+        continue;
+      }
+      lwp_id = atoi(entry->d_name);
+      if (lwp_id == ph->pid) {
+        continue;
+      }
+      add_new_thread(ph, -1, lwp_id);
+    }
+    closedir(dirp);
+  } else {
+    read_thread_info(ph, add_new_thread);
+  }
 
   // attach to the threads
   thr = ph->threads;
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,16 @@
 package sun.jvm.hotspot.debugger.linux;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.stream.Collectors;
 
 import sun.jvm.hotspot.debugger.Address;
 import sun.jvm.hotspot.debugger.DebuggerBase;
@@ -72,6 +80,10 @@
     private List threadList;
     private List loadObjectList;
 
+    // PID namespace support
+    // It maps the LWPID in the host to the LWPID in the container.
+    private Map<Integer, Integer> nspidMap;
+
     // called by native method lookupByAddress0
     private ClosestSymbol createClosestSymbol(String name, long offset) {
        return new ClosestSymbol(name, offset);
@@ -89,7 +101,8 @@
 
     private native static void init0()
                                 throws DebuggerException;
-    private native void attach0(int pid)
+    private native void setSAAltRoot0(String altroot);
+    private native void attach0(int pid, boolean isInContainer)
                                 throws DebuggerException;
     private native void attach0(String execName, String coreName)
                                 throws DebuggerException;
@@ -254,15 +267,63 @@
         }
     }
 
+    // Get namespace PID from /proc/<PID>/status.
+    private int getNamespacePID(Path statusPath) {
+        try (var lines = Files.lines(statusPath)) {
+            return lines.map(s -> s.split("\\s+"))
+                        .filter(a -> a.length == 3)
+                        .filter(a -> a[0].equals("NSpid:"))
+                        .mapToInt(a -> Integer.valueOf(a[2]))
+                        .findFirst()
+                        .getAsInt();
+        } catch (IOException | NoSuchElementException e) {
+            return Integer.valueOf(statusPath.getParent()
+                                             .toFile()
+                                             .getName());
+        }
+    }
+
+    // Get LWPID in the host from the container's LWPID.
+    // Returns -1 if the process is running in the host.
+    public int getHostPID(int id) {
+        return (nspidMap == null) ? -1 : nspidMap.get(id);
+    }
+
+    // Fill namespace PID map from procfs.
+    // This method scans all tasks (/proc/<PID>/task) in the process.
+    private void fillNSpidMap(Path proc) {
+        Path task = Paths.get(proc.toString(), "task");
+        try (var tasks = Files.list(task)) {
+            nspidMap = tasks.filter(p -> !p.toString().startsWith("."))
+                            .collect(Collectors.toMap(p -> Integer.valueOf(getNamespacePID(Paths.get(p.toString(), "status"))),
+                                                      p -> Integer.valueOf(p.toFile().getName())));
+        } catch (IOException e) {
+            throw new UncheckedIOException(e);
+        }
+    }
+
     /** From the Debugger interface via JVMDebugger */
     public synchronized void attach(int processID) throws DebuggerException {
         checkAttached();
         threadList = new ArrayList();
         loadObjectList = new ArrayList();
+
+        Path proc = Paths.get("/proc", Integer.toString(processID));
+        int NSpid = getNamespacePID(Paths.get(proc.toString(), "status"));
+        if (NSpid != processID) {
+            // If PID different from namespace PID, we can assume the process
+            // is running in the container.
+            // So we need to set SA_ALTROOT environment variable that SA reads
+            // binaries in the container.
+            setSAAltRoot0(Paths.get(proc.toString(), "root").toString());
+            fillNSpidMap(proc);
+        }
+
         class AttachTask implements WorkerThreadTask {
            int pid;
+           boolean isInContainer;
            public void doit(LinuxDebuggerLocal debugger) {
-              debugger.attach0(pid);
+              debugger.attach0(pid, isInContainer);
               debugger.attached = true;
               debugger.isCore = false;
               findABIVersion();
@@ -271,6 +332,7 @@
 
         AttachTask task = new AttachTask();
         task.pid = processID;
+        task.isInContainer = (processID != NSpid);
         workerThread.execute(task);
     }
 
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxThread.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxThread.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,16 @@
         // FIXME: size of data fetched here should be configurable.
         // However, making it so would produce a dependency on the "types"
         // package from the debugger package, which is not desired.
-        this.lwp_id = (int) addr.getCIntegerAt(0, 4, true);
+        int pid = (int)addr.getCIntegerAt(0, 4, true);
+        if (debugger instanceof LinuxDebuggerLocal) {
+            int hostPID = ((LinuxDebuggerLocal)debugger).getHostPID(pid);
+            // Debuggee is not running in the container
+            if (hostPID != -1) {
+                pid = hostPID;
+            }
+        }
+        this.lwp_id = pid;
+
     }
 
     LinuxThread(LinuxDebugger debugger, long id) {
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotReturnOp.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotReturnOp.java	Fri Jul 27 12:16:01 2018 +0100
@@ -79,6 +79,7 @@
         leaveFrameAndRestoreRbp(crb, masm);
         if (!isStub) {
             if (requiresReservedStackAccessCheck) {
+                assert scratchForSafepointOnReturn != null;
                 HotSpotForeignCallsProvider foreignCalls = (HotSpotForeignCallsProvider) crb.foreignCalls;
 
                 Label noReserved = new Label();
@@ -94,11 +95,11 @@
                 assert cc.getArgumentCount() == 1;
                 Register arg0 = ((RegisterValue) cc.getArgument(0)).getRegister();
                 masm.movq(arg0, thread);
-                AMD64Call.directCall(crb, masm, enableStackReservedZone, null, false, null);
+                AMD64Call.directCall(crb, masm, enableStackReservedZone, scratchForSafepointOnReturn, false, null);
                 if (stackAdjust > 0) {
                     masm.addq(rsp, stackAdjust);
                 }
-                AMD64Call.directJmp(crb, masm, foreignCalls.lookupForeignCall(THROW_DELAYED_STACKOVERFLOW_ERROR));
+                AMD64Call.directJmp(crb, masm, foreignCalls.lookupForeignCall(THROW_DELAYED_STACKOVERFLOW_ERROR), scratchForSafepointOnReturn);
                 masm.bind(noReserved);
             }
 
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64Call.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64Call.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,12 +24,13 @@
 
 package org.graalvm.compiler.lir.amd64;
 
+import static jdk.vm.ci.code.ValueUtil.asRegister;
+import static jdk.vm.ci.code.ValueUtil.isRegister;
+import static org.graalvm.compiler.core.common.GraalOptions.GeneratePIC;
 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.ILLEGAL;
 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.REG;
 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.STACK;
 import static org.graalvm.compiler.lir.LIRValueUtil.differentRegisters;
-import static jdk.vm.ci.code.ValueUtil.asRegister;
-import static jdk.vm.ci.code.ValueUtil.isRegister;
 
 import org.graalvm.compiler.asm.amd64.AMD64Assembler.ConditionFlag;
 import org.graalvm.compiler.asm.amd64.AMD64MacroAssembler;
@@ -195,7 +196,7 @@
         }
         int before = masm.position();
         int callPCOffset;
-        if (scratch != null) {
+        if (scratch != null && !GeneratePIC.getValue(crb.getOptions())) {
             // offset might not fit a 32-bit immediate, generate an
             // indirect call with a 64-bit immediate
             masm.movq(scratch, 0L);
@@ -222,12 +223,27 @@
         }
     }
 
-    public static void directJmp(CompilationResultBuilder crb, AMD64MacroAssembler masm, InvokeTarget target) {
+    public static int directJmp(CompilationResultBuilder crb, AMD64MacroAssembler masm, InvokeTarget target) {
+        return directJmp(crb, masm, target, null);
+    }
+
+    public static int directJmp(CompilationResultBuilder crb, AMD64MacroAssembler masm, InvokeTarget target, Register scratch) {
         int before = masm.position();
-        masm.jmp(0, true);
+        int callPCOffset;
+        if (scratch != null && !GeneratePIC.getValue(crb.getOptions())) {
+            // offset might not fit a 32-bit immediate, generate an
+            // indirect call with a 64-bit immediate
+            masm.movq(scratch, 0L);
+            callPCOffset = masm.position();
+            masm.jmp(scratch);
+        } else {
+            callPCOffset = masm.position();
+            masm.jmp(0, true);
+        }
         int after = masm.position();
         crb.recordDirectCall(before, after, target, null);
         masm.ensureUniquePC();
+        return callPCOffset;
     }
 
     public static void directConditionalJmp(CompilationResultBuilder crb, AMD64MacroAssembler masm, InvokeTarget target, ConditionFlag cond) {
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java	Fri Jul 27 12:16:01 2018 +0100
@@ -116,8 +116,10 @@
                 "[-strict]                   \u8B66\u544A\u3092\u30A8\u30E9\u30FC\u3068\u3057\u3066\u51E6\u7406"},
         {".conf.url.specify.a.pre.configured.options.file",
                 "[-conf <url>]               \u4E8B\u524D\u69CB\u6210\u6E08\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3059\u308B"},
+        {".print.this.help.message",
+                "[-? -h --help]              \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059"},
         {"Option.lacks.argument", "\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u5F15\u6570\u304C\u3042\u308A\u307E\u305B\u3093"},
-        {"Please.type.jarsigner.help.for.usage", "\u4F7F\u7528\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306Fjarsigner -help\u3068\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
+        {"Please.type.jarsigner.help.for.usage", "\u4F7F\u7528\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306Fjarsigner --help\u3068\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
         {"Please.specify.jarfile.name", "jarfile\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
         {"Please.specify.alias.name", "\u5225\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
         {"Only.one.alias.can.be.specified", "\u5225\u540D\u306F1\u3064\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059"},
@@ -223,6 +225,7 @@
         {"Error.", "\u30A8\u30E9\u30FC: "},
         {"...Signer", ">>> \u7F72\u540D\u8005"},
         {"...TSA", ">>> TSA"},
+        {"trusted.certificate", "\u4FE1\u983C\u3067\u304D\u308B\u8A3C\u660E\u66F8"},
         {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
                 "\u3053\u306Ejar\u306B\u306F\u3001\u6574\u5408\u6027\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u3044\u306A\u3044\u7F72\u540D\u306A\u3057\u306E\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "},
         {"This.jar.contains.entries.whose.signer.certificate.has.expired.",
@@ -239,8 +242,16 @@
                 "\u8A73\u7D30\u306F\u3001-verbose\u304A\u3088\u3073-certs\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
         {"The.signer.certificate.has.expired.",
                 "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F\u671F\u9650\u5207\u308C\u3067\u3059\u3002"},
+        {"The.timestamp.expired.1.but.usable.2",
+                "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002\u305F\u3060\u3057\u3001JAR\u306F\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C%2$tY-%2$tm-%2$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308B\u307E\u3067\u6709\u52B9\u3067\u3059\u3002"},
+        {"The.timestamp.has.expired.",
+                "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3057\u305F\u3002"},
         {"The.signer.certificate.will.expire.within.six.months.",
                 "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F6\u304B\u6708\u4EE5\u5185\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002"},
+        {"The.timestamp.will.expire.within.one.year.on.1",
+                "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F1\u5E74\u4EE5\u5185\u306E%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002"},
+        {"The.timestamp.will.expire.within.one.year.on.1.but.2",
+                "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F1\u5E74\u4EE5\u5185\u306E%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002\u305F\u3060\u3057\u3001JAR\u306F\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C%2$tY-%2$tm-%2$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308B\u307E\u3067\u6709\u52B9\u3067\u3059\u3002"},
         {"The.signer.certificate.is.not.yet.valid.",
                 "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F\u307E\u3060\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u305B\u3093\u3002"},
         {"The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
@@ -273,10 +284,18 @@
                 "\u3053\u306Ejar\u306B\u306F\u3001TSA\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u7121\u52B9\u306A\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u7406\u7531: %s"},
         {"no.timestamp.signing",
                 "-tsa\u307E\u305F\u306F-tsacert\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u3053\u306Ejar\u306B\u306F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u4ED8\u52A0\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650(%1$tY-%1$tm-%1$td)\u5F8C\u306B\u3001\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
+        {"invalid.timestamp.signing",
+                "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u7121\u52B9\u3067\u3059\u3002\u6709\u52B9\u306A\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650(%1$tY-%1$tm-%1$td)\u5F8C\u306B\u3001\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
         {"no.timestamp.verifying",
                 "\u3053\u306Ejar\u306B\u306F\u3001\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u7F72\u540D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u3044\u305A\u308C\u304B\u306E\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650\u5F8C\u306B(\u65E9\u3051\u308C\u3070%1$tY-%1$tm-%1$td)\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
         {"bad.timestamp.verifying",
                 "\u3053\u306Ejar\u306B\u306F\u3001\u7121\u52B9\u306A\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306E\u3042\u308B\u7F72\u540D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u6709\u52B9\u306A\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u3044\u305A\u308C\u304B\u306E\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650\u5F8C\u306B(\u65E9\u3051\u308C\u3070%1$tY-%1$tm-%1$td)\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\n\u8A73\u7D30\u306F\u3001-J-Djava.security.debug=jar\u3092\u6307\u5B9A\u3057\u3066jarsigner\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
+        {"The.signer.certificate.will.expire.on.1.",
+                "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002"},
+        {"The.timestamp.will.expire.on.1.",
+                "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002"},
+        {"signer.cert.expired.1.but.timestamp.good.2.",
+                "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002\u305F\u3060\u3057\u3001JAR\u306F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C%2$tY-%2$tm-%2$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308B\u307E\u3067\u6709\u52B9\u3067\u3059\u3002"},
         {"Unknown.password.type.", "\u4E0D\u660E\u306A\u30D1\u30B9\u30EF\u30FC\u30C9\u30FB\u30BF\u30A4\u30D7: "},
         {"Cannot.find.environment.variable.",
                 "\u74B0\u5883\u5909\u6570\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: "},
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java	Fri Jul 27 12:16:01 2018 +0100
@@ -116,8 +116,10 @@
                 "[-strict]                   \u5C06\u8B66\u544A\u89C6\u4E3A\u9519\u8BEF"},
         {".conf.url.specify.a.pre.configured.options.file",
                 "[-conf <url>]               \u6307\u5B9A\u9884\u914D\u7F6E\u7684\u9009\u9879\u6587\u4EF6"},
+        {".print.this.help.message",
+                "[-? -h --help]              \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F"},
         {"Option.lacks.argument", "\u9009\u9879\u7F3A\u5C11\u53C2\u6570"},
-        {"Please.type.jarsigner.help.for.usage", "\u8BF7\u952E\u5165 jarsigner -help \u4EE5\u4E86\u89E3\u7528\u6CD5"},
+        {"Please.type.jarsigner.help.for.usage", "\u8BF7\u952E\u5165 jarsigner --help \u4EE5\u4E86\u89E3\u7528\u6CD5"},
         {"Please.specify.jarfile.name", "\u8BF7\u6307\u5B9A jarfile \u540D\u79F0"},
         {"Please.specify.alias.name", "\u8BF7\u6307\u5B9A\u522B\u540D"},
         {"Only.one.alias.can.be.specified", "\u53EA\u80FD\u6307\u5B9A\u4E00\u4E2A\u522B\u540D"},
@@ -223,6 +225,7 @@
         {"Error.", "\u9519\u8BEF: "},
         {"...Signer", ">>> \u7B7E\u540D\u8005"},
         {"...TSA", ">>> TSA"},
+        {"trusted.certificate", "\u53EF\u4FE1\u8BC1\u4E66"},
         {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
                 "\u6B64 jar \u5305\u542B\u5C1A\u672A\u8FDB\u884C\u5B8C\u6574\u6027\u68C0\u67E5\u7684\u672A\u7B7E\u540D\u6761\u76EE\u3002 "},
         {"This.jar.contains.entries.whose.signer.certificate.has.expired.",
@@ -239,8 +242,16 @@
                 "\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u4F7F\u7528 -verbose \u548C -certs \u9009\u9879\u91CD\u65B0\u8FD0\u884C\u3002"},
         {"The.signer.certificate.has.expired.",
                 "\u7B7E\u540D\u8005\u8BC1\u4E66\u5DF2\u8FC7\u671F\u3002"},
+        {"The.timestamp.expired.1.but.usable.2",
+                "\u65F6\u95F4\u6233\u5230\u671F\u65E5\u671F\u4E3A %1$tY-%1$tm-%1$td\u3002\u4E0D\u8FC7\uFF0C\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u4E8E %2$tY-%2$tm-%2$td \u5230\u671F\u4E4B\u524D\uFF0CJAR \u5C06\u6709\u6548\u3002"},
+        {"The.timestamp.has.expired.",
+                "\u65F6\u95F4\u6233\u5DF2\u5230\u671F\u3002"},
         {"The.signer.certificate.will.expire.within.six.months.",
                 "\u7B7E\u540D\u8005\u8BC1\u4E66\u5C06\u5728\u516D\u4E2A\u6708\u5185\u8FC7\u671F\u3002"},
+        {"The.timestamp.will.expire.within.one.year.on.1",
+                "\u65F6\u95F4\u6233\u5C06\u5728\u4E00\u5E74\u5185\u4E8E %1$tY-%1$tm-%1$td \u5230\u671F\u3002"},
+        {"The.timestamp.will.expire.within.one.year.on.1.but.2",
+                "\u65F6\u95F4\u6233\u5C06\u5728\u4E00\u5E74\u5185\u4E8E %1$tY-%1$tm-%1$td \u5230\u671F\u3002\u4E0D\u8FC7\uFF0C\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u4E8E %2$tY-%2$tm-%2$td \u5230\u671F\u4E4B\u524D\uFF0CJAR \u5C06\u6709\u6548\u3002"},
         {"The.signer.certificate.is.not.yet.valid.",
                 "\u7B7E\u540D\u8005\u8BC1\u4E66\u4ECD\u65E0\u6548\u3002"},
         {"The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
@@ -273,10 +284,18 @@
                 "\u6B64 jar \u5305\u542B\u5176 TSA \u8BC1\u4E66\u94FE\u65E0\u6548\u7684\u6761\u76EE\u3002\u539F\u56E0: %s"},
         {"no.timestamp.signing",
                 "\u672A\u63D0\u4F9B -tsa \u6216 -tsacert, \u6B64 jar \u6CA1\u6709\u65F6\u95F4\u6233\u3002\u5982\u679C\u6CA1\u6709\u65F6\u95F4\u6233, \u5219\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u7684\u5230\u671F\u65E5\u671F (%1$tY-%1$tm-%1$td) \u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
+        {"invalid.timestamp.signing",
+                "\u65F6\u95F4\u6233\u65E0\u6548\u3002\u5982\u679C\u6CA1\u6709\u6709\u6548\u7684\u65F6\u95F4\u6233\uFF0C\u5219\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u7684\u5230\u671F\u65E5\u671F (%1$tY-%1$tm-%1$td) \u4E4B\u540E\uFF0C\u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
         {"no.timestamp.verifying",
                 "\u6B64 jar \u5305\u542B\u7684\u7B7E\u540D\u6CA1\u6709\u65F6\u95F4\u6233\u3002\u5982\u679C\u6CA1\u6709\u65F6\u95F4\u6233, \u5219\u5728\u5176\u4E2D\u4EFB\u4E00\u7B7E\u540D\u8005\u8BC1\u4E66\u5230\u671F (\u6700\u65E9\u4E3A %1$tY-%1$tm-%1$td) \u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
         {"bad.timestamp.verifying",
                 "\u6B64 jar \u5305\u542B\u5E26\u6709\u65E0\u6548\u65F6\u95F4\u6233\u7684\u7B7E\u540D\u3002\u5982\u679C\u6CA1\u6709\u6709\u6548\u65F6\u95F4\u6233, \u5219\u5728\u5176\u4E2D\u4EFB\u4E00\u7B7E\u540D\u8005\u8BC1\u4E66\u5230\u671F (\u6700\u65E9\u4E3A %1$tY-%1$tm-%1$td) \u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u4F7F\u7528 -J-Djava.security.debug=jar \u91CD\u65B0\u8FD0\u884C jarsigner\u3002"},
+        {"The.signer.certificate.will.expire.on.1.",
+                "\u7B7E\u540D\u8005\u8BC1\u4E66\u5C06\u4E8E %1$tY-%1$tm-%1$td \u5230\u671F\u3002"},
+        {"The.timestamp.will.expire.on.1.",
+                "\u65F6\u95F4\u6233\u5C06\u4E8E %1$tY-%1$tm-%1$td \u5230\u671F\u3002"},
+        {"signer.cert.expired.1.but.timestamp.good.2.",
+                "\u7B7E\u540D\u8005\u8BC1\u4E66\u5230\u671F\u65E5\u671F\u4E3A %1$tY-%1$tm-%1$td\u3002\u4E0D\u8FC7\uFF0C\u5728\u65F6\u95F4\u6233\u4E8E %2$tY-%2$tm-%2$td \u5230\u671F\u4E4B\u524D\uFF0CJAR \u5C06\u6709\u6548\u3002"},
         {"Unknown.password.type.", "\u672A\u77E5\u53E3\u4EE4\u7C7B\u578B: "},
         {"Cannot.find.environment.variable.",
                 "\u627E\u4E0D\u5230\u73AF\u5883\u53D8\u91CF: "},
--- a/src/jdk.jartool/share/classes/sun/tools/jar/Main.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jartool/share/classes/sun/tools/jar/Main.java	Fri Jul 27 12:16:01 2018 +0100
@@ -633,10 +633,15 @@
                         dir = (dir.endsWith(File.separator) ?
                                dir : (dir + File.separator));
                         dir = dir.replace(File.separatorChar, '/');
+
+                        boolean hasUNC = (File.separatorChar == '\\'&&  dir.startsWith("//"));
                         while (dir.indexOf("//") > -1) {
                             dir = dir.replace("//", "/");
                         }
-                        pathsMap.get(version).add(dir.replace(File.separatorChar, '/'));
+                        if (hasUNC) { // Restore Windows UNC path.
+                            dir = "/" + dir;
+                        }
+                        pathsMap.get(version).add(dir);
                         nameBuf[k++] = dir + args[++i];
                     } else if (args[i].startsWith("--release")) {
                         int v = BASE_VERSION;
--- a/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -75,6 +75,7 @@
 warn.validator.resources.with.same.name=\u8B66\u544A : \u30A8\u30F3\u30C8\u30EA{0}\u3001\u540C\u3058\u540D\u524D\u3092\u6301\u3064\u8907\u6570\u306E\u30EA\u30BD\u30FC\u30B9
 warn.validator.concealed.public.class=\u8B66\u544A : \u30A8\u30F3\u30C8\u30EA{0}\u306F\u3001\u96A0\u3057\u30D1\u30C3\u30B1\u30FC\u30B8\u5185\u306Epublic\u30AF\u30E9\u30B9\u3067\u3059\u3002\n\u30AF\u30E9\u30B9\u30D1\u30B9\u306B\u3053\u306Ejar\u3092\u914D\u7F6E\u3059\u308B\u3068\u3001\u4E92\u63DB\u6027\u306E\u306A\u3044\npublic\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u304C\u751F\u6210\u3055\u308C\u307E\u3059
 warn.release.unexpected.versioned.entry=\u4E88\u671F\u3057\u306A\u3044\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u6E08\u30A8\u30F3\u30C8\u30EA{0}
+warn.flag.is.deprecated=\u8B66\u544A: {0}\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u63A8\u5968\u3067\u3042\u308A\u3001\u4ECA\u5F8C\u306EJDK\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u4E88\u5B9A\u3067\u3059\u3002\n
 out.added.manifest=\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F
 out.added.module-info=module-info\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F: {0}
 out.automodule=\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u81EA\u52D5\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u5C0E\u51FA\u3055\u308C\u307E\u3057\u305F\u3002
@@ -89,7 +90,7 @@
 out.inflated=\ {0}\u304C\u5C55\u958B\u3055\u308C\u307E\u3057\u305F
 out.size=(\u5165={0})(\u51FA={1})
 
-usage.compat=\u4E92\u63DB\u6027\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9:\n\u4F7F\u7528\u65B9\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files] ...\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n    -c  \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B\n    -t  \u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5185\u5BB9\u3092\u4E00\u89A7\u8868\u793A\u3059\u308B\n    -x  \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3059\u308B\n    -u  \u65E2\u5B58\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u66F4\u65B0\u3059\u308B\n    -v  \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n    -f  \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3059\u308B\n    -m  \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\u53D6\u308A\u8FBC\u3080\n    -n  \u65B0\u898F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u4F5C\u6210\u5F8C\u306BPack200\u6B63\u898F\u5316\u3092\u5B9F\u884C\u3059\u308B\n    -e  \u5B9F\u884C\u53EF\u80FDjar\u30D5\u30A1\u30A4\u30EB\u306B\u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\n        \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u3092\u6307\u5B9A\u3059\u308B\n    -0  \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u306A\u3044\n    -P  \u30D5\u30A1\u30A4\u30EB\u540D\u306E\u5148\u982D\u306E'/' (\u7D76\u5BFE\u30D1\u30B9)\u304A\u3088\u3073\\"..\\" (\u89AA\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA)\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u4FDD\u6301\u3059\u308B\n    -M  \u30A8\u30F3\u30C8\u30EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u306A\u3044\n    -i  \u6307\u5B9A\u306Ejar\u30D5\u30A1\u30A4\u30EB\u306E\u7D22\u5F15\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n    -C  \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u308A\u8FBC\u3080\n\u30D5\u30A1\u30A4\u30EB\u304C\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u5834\u5408\u306F\u518D\u5E30\u7684\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002\n\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u304A\u3088\u3073\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u540D\u306F\u3001\n\u30D5\u30E9\u30B0'm'\u3001'f'\u3001'e'\u306E\u6307\u5B9A\u3068\u540C\u3058\u9806\u756A\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\n\u4F8B1: 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6classes.jar\u306B\u4FDD\u5B58\u3059\u308B: \n       jar cvf classes.jar Foo.class Bar.class \n\u4F8B2: \u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB'mymanifest'\u3092\u4F7F\u7528\u3057\u3001foo/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\n           \u5168\u30D5\u30A1\u30A4\u30EB\u3092'classes.jar'\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B: \n       jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=\u4E92\u63DB\u6027\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9:\n\u4F7F\u7528\u65B9\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files] ...\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n    -c  \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B\n    -t  \u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5185\u5BB9\u3092\u4E00\u89A7\u8868\u793A\u3059\u308B\n    -x  \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3059\u308B\n    -u  \u65E2\u5B58\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u66F4\u65B0\u3059\u308B\n    -v  \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n    -f  \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3059\u308B\n    -m  \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\u53D6\u308A\u8FBC\u3080\n    -n  \u65B0\u898F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u4F5C\u6210\u5F8C\u306BPack200\u6B63\u898F\u5316\u3092\u5B9F\u884C\u3059\u308B\n        \u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u63A8\u5968\u3067\u3042\u308A\u3001\u4ECA\u5F8C\u306EJDK\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u4E88\u5B9A\u3067\u3059\n    -e  \u5B9F\u884C\u53EF\u80FDjar\u30D5\u30A1\u30A4\u30EB\u306B\u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB \n        \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u3092\u6307\u5B9A\u3059\u308B\n    -0  \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u306A\u3044\n    -P  \u30D5\u30A1\u30A4\u30EB\u540D\u306E\u5148\u982D\u306E'/' (\u7D76\u5BFE\u30D1\u30B9)\u304A\u3088\u3073\\"..\\" (\u89AA\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA)\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u4FDD\u6301\u3059\u308B\n    -M  \u30A8\u30F3\u30C8\u30EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u306A\u3044\n    -i  \u6307\u5B9A\u306Ejar\u30D5\u30A1\u30A4\u30EB\u306E\u7D22\u5F15\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n    -C  \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u308A\u8FBC\u3080\n\u30D5\u30A1\u30A4\u30EB\u304C\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u5834\u5408\u306F\u518D\u5E30\u7684\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002\n\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u304A\u3088\u3073\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u540D\u306F\u3001\n\u30D5\u30E9\u30B0'm'\u3001'f'\u3001'e'\u306E\u6307\u5B9A\u3068\u540C\u3058\u9806\u756A\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\n\u4F8B1: 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6classes.jar\u306B\u4FDD\u5B58\u3059\u308B: \n       jar cvf classes.jar Foo.class Bar.class \n\u4F8B2: \u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB'mymanifest'\u3092\u4F7F\u7528\u3057\u3001foo/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\n           \u5168\u30D5\u30A1\u30A4\u30EB\u3092'classes.jar'\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B: \n       jar cvfm classes.jar mymanifest -C foo/ .\n
 
 main.usage.summary=\u4F7F\u7528\u65B9\u6CD5: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...
 main.usage.summary.try=\u8A73\u7D30\u306F\u3001`jar --help'\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
@@ -106,7 +107,7 @@
 main.help.opt.any.file=\  -f\u3001--file=FILE            \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3002\u7701\u7565\u3057\u305F\u5834\u5408\u3001stdin\u307E\u305F\u306F\n                             stdout\u306E\u3044\u305A\u308C\u304B\u304C\u64CD\u4F5C\u306B\u57FA\u3065\u3044\u3066\u4F7F\u7528\u3055\u308C\u307E\u3059\n      --release VERSION      \u6B21\u306E\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3092jar\u306E\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u3055\u308C\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\n                             (\u3064\u307E\u308A\u3001META-INF/versions/VERSION/)\u306B\u914D\u7F6E\u3057\u307E\u3059
 main.help.opt.any.verbose=\  -v\u3001--verbose              \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3057\u307E\u3059
 main.help.opt.create=\ \u4F5C\u6210\u30E2\u30FC\u30C9\u3067\u306E\u307F\u6709\u52B9\u306A\u64CD\u4F5C\u4FEE\u98FE\u5B50:\n
-main.help.opt.create.normalize=\  -n\u3001--normalize            \u65B0\u3057\u3044jar\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u4F5C\u6210\u5F8C\u3001\u542B\u307E\u308C\u308B\u60C5\u5831\u3092\n                             \u6B63\u898F\u5316\u3057\u307E\u3059
+main.help.opt.create.normalize=\  -n, --normalize            \u65B0\u3057\u3044jar\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u4F5C\u6210\u5F8C\u3001\u542B\u307E\u308C\u308B\u60C5\u5831\u3092\n                             \u6B63\u898F\u5316\u3057\u307E\u3059\u3002\u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u63A8\u5968\u3067\u3042\u308A\u3001\n                             \u4ECA\u5F8C\u306EJDK\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u4E88\u5B9A\u3067\u3059
 main.help.opt.create.update=\ \u4F5C\u6210\u307E\u305F\u306F\u66F4\u65B0\u30E2\u30FC\u30C9\u3067\u306E\u307F\u6709\u52B9\u306A\u64CD\u4F5C\u4FEE\u98FE\u5B50:\n
 main.help.opt.create.update.main-class=\  -e\u3001--main-class=CLASSNAME \u30E2\u30B8\u30E5\u30E9\u307E\u305F\u306F\u5B9F\u884C\u53EF\u80FD\u306Ajar\u30A2\u30FC\u30AB\u30A4\u30D6\u306B\n                             \u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\n                             \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8
 main.help.opt.create.update.manifest=\  -m\u3001--manifest=FILE        \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\n                             \u53D6\u308A\u8FBC\u307F\u307E\u3059
@@ -119,7 +120,7 @@
 main.help.opt.create.update.index=\ \u4F5C\u6210\u3001\u66F4\u65B0\u304A\u3088\u3073\u7D22\u5F15\u751F\u6210\u30E2\u30FC\u30C9\u3067\u306E\u307F\u6709\u52B9\u306A\u64CD\u4F5C\u4FEE\u98FE\u5B50:\n
 main.help.opt.create.update.index.no-compress=\  -0, --no-compress          \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u307E\u305B\u3093
 main.help.opt.other=\ \u305D\u306E\u4ED6\u306E\u30AA\u30D7\u30B7\u30E7\u30F3:\n
-main.help.opt.other.help=\  -h\u3001--help[:compat]        \u3053\u308C(\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u4E92\u63DB\u6027)\u3092help\u306B\u6307\u5B9A\u3057\u307E\u3059
+main.help.opt.other.help=\  -?\u3001-h\u3001--help[:compat]        \u3053\u308C(\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u4E92\u63DB\u6027)\u3092help\u306B\u6307\u5B9A\u3057\u307E\u3059
 main.help.opt.other.help-extra=\      --help-extra           \u8FFD\u52A0\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30D8\u30EB\u30D7\u3092\u63D0\u4F9B\u3057\u307E\u3059
 main.help.opt.other.version=\      --version              \u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059
 main.help.postopt=\ \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF'module-info.class'\u304C\u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30EB\u30FC\u30C8\u307E\u305F\u306F\n jar\u30A2\u30FC\u30AB\u30A4\u30D6\u81EA\u4F53\u306E\u30EB\u30FC\u30C8\u306B\u3042\u308B\u5834\u5408\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u306F\u30E2\u30B8\u30E5\u30E9jar\u3067\u3059\u3002\n \u6B21\u306E\u64CD\u4F5C\u306F\u3001\u30E2\u30B8\u30E5\u30E9jar\u306E\u4F5C\u6210\u6642\u307E\u305F\u306F\u65E2\u5B58\u306E\u975E\u30E2\u30B8\u30E5\u30E9jar\u306E\u66F4\u65B0\u6642\u306B\n \u306E\u307F\u6709\u52B9\u3067\u3059:  '--module-version'\u3001\n '--hash-modules'\u304A\u3088\u3073'--module-path'\u3002\n\n \u30ED\u30F3\u30B0\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3078\u306E\u5FC5\u9808\u307E\u305F\u306F\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5F15\u6570\u306F\u3001\u5BFE\u5FDC\u3059\u308B\u30B7\u30E7\u30FC\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\n \u306B\u5BFE\u3057\u3066\u3082\u5FC5\u9808\u307E\u305F\u306F\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306A\u308A\u307E\u3059\u3002
--- a/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -75,6 +75,7 @@
 warn.validator.resources.with.same.name=\u8B66\u544A: \u6761\u76EE {0}, \u591A\u4E2A\u8D44\u6E90\u5177\u6709\u76F8\u540C\u540D\u79F0
 warn.validator.concealed.public.class=\u8B66\u544A: \u6761\u76EE {0} \u662F\u5DF2\u9690\u85CF\u7A0B\u5E8F\u5305\u4E2D\u7684\n\u516C\u5171\u7C7B, \u5C06\u6B64 jar \u653E\u7F6E\u5728\u7C7B\u8DEF\u5F84\u4E2D\n\u5C06\u5BFC\u81F4\u516C\u5171\u63A5\u53E3\u4E0D\u517C\u5BB9
 warn.release.unexpected.versioned.entry=\u610F\u5916\u7684\u7248\u672C\u5316\u6761\u76EE {0}
+warn.flag.is.deprecated=\u8B66\u544A\uFF1A{0} \u9009\u9879\u5DF2\u8FC7\u65F6\uFF0C\u8BA1\u5212\u5728\u672A\u6765\u7684 JDK \u53D1\u884C\u7248\u4E2D\u5220\u9664\u3002\n
 out.added.manifest=\u5DF2\u6DFB\u52A0\u6E05\u5355
 out.added.module-info=\u5DF2\u6DFB\u52A0 module-info: {0}
 out.automodule=\u627E\u4E0D\u5230\u6A21\u5757\u63CF\u8FF0\u7B26\u3002\u5DF2\u6D3E\u751F\u81EA\u52A8\u6A21\u5757\u3002
@@ -89,7 +90,7 @@
 out.inflated=\  \u5DF2\u89E3\u538B: {0}
 out.size=(\u8F93\u5165 = {0}) (\u8F93\u51FA = {1})
 
-usage.compat=\u517C\u5BB9\u6027\u63A5\u53E3:\n\u7528\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files] ...\n\u9009\u9879:\n    -c  \u521B\u5EFA\u65B0\u6863\u6848\n    -t  \u5217\u51FA\u6863\u6848\u76EE\u5F55\n    -x  \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684 (\u6216\u6240\u6709) \u6587\u4EF6\n    -u  \u66F4\u65B0\u73B0\u6709\u6863\u6848\n    -v  \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA\n    -f  \u6307\u5B9A\u6863\u6848\u6587\u4EF6\u540D\n    -m  \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\u6E05\u5355\u4FE1\u606F\n    -n  \u521B\u5EFA\u65B0\u6863\u6848\u540E\u6267\u884C Pack200 \u89C4\u8303\u5316\n    -e  \u4E3A\u6346\u7ED1\u5230\u53EF\u6267\u884C jar \u6587\u4EF6\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n        \u6307\u5B9A\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9\n    -0  \u4EC5\u5B58\u50A8; \u4E0D\u4F7F\u7528 ZIP \u538B\u7F29\n    -P  \u4FDD\u7559\u6587\u4EF6\u540D\u4E2D\u7684\u524D\u5BFC '/' (\u7EDD\u5BF9\u8DEF\u5F84) \u548C ".." (\u7236\u76EE\u5F55) \u7EC4\u4EF6\n    -M  \u4E0D\u521B\u5EFA\u6761\u76EE\u7684\u6E05\u5355\u6587\u4EF6\n    -i  \u4E3A\u6307\u5B9A\u7684 jar \u6587\u4EF6\u751F\u6210\u7D22\u5F15\u4FE1\u606F\n    -C  \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\u4EE5\u4E0B\u6587\u4EF6\n\u5982\u679C\u4EFB\u4F55\u6587\u4EF6\u4E3A\u76EE\u5F55, \u5219\u5BF9\u5176\u8FDB\u884C\u9012\u5F52\u5904\u7406\u3002\n\u6E05\u5355\u6587\u4EF6\u540D, \u6863\u6848\u6587\u4EF6\u540D\u548C\u5165\u53E3\u70B9\u540D\u79F0\u7684\u6307\u5B9A\u987A\u5E8F\n\u4E0E 'm', 'f' \u548C 'e' \u6807\u8BB0\u7684\u6307\u5B9A\u987A\u5E8F\u76F8\u540C\u3002\n\n\u793A\u4F8B 1: \u5C06\u4E24\u4E2A\u7C7B\u6587\u4EF6\u5F52\u6863\u5230\u4E00\u4E2A\u540D\u4E3A classes.jar \u7684\u6863\u6848\u4E2D: \n       jar cvf classes.jar Foo.class Bar.class \n\u793A\u4F8B 2: \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u6587\u4EF6 'mymanifest' \u5E76\n           \u5C06 foo/ \u76EE\u5F55\u4E2D\u7684\u6240\u6709\u6587\u4EF6\u5F52\u6863\u5230 'classes.jar' \u4E2D: \n       jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=\u517C\u5BB9\u6027\u63A5\u53E3\uFF1A\n\u7528\u6CD5\uFF1Ajar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files] ...\n\u9009\u9879\uFF1A\n    -c  \u521B\u5EFA\u65B0\u6863\u6848\n    -t  \u5217\u51FA\u6863\u6848\u76EE\u5F55\n    -x  \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684\uFF08\u6216\u6240\u6709\uFF09\u6587\u4EF6\n    -u  \u66F4\u65B0\u73B0\u6709\u6863\u6848\n    -v  \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA\n    -f  \u6307\u5B9A\u6863\u6848\u6587\u4EF6\u540D\n    -m  \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\u6E05\u5355\u4FE1\u606F\n    -n  \u521B\u5EFA\u65B0\u6863\u6848\u540E\u6267\u884C Pack200 \u89C4\u8303\u5316\uFF0C\n        \u6B64\u9009\u9879\u5DF2\u8FC7\u65F6\uFF0C\u8BA1\u5212\u5728\u672A\u6765\u7684 JDK \u53D1\u884C\u7248\u4E2D\u5220\u9664\n    -e  \u4E3A\u6346\u7ED1\u5230\u53EF\u6267\u884C jar \u6587\u4EF6\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n        \u6307\u5B9A\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9\n    -0  \u4EC5\u5B58\u50A8\uFF1B\u4E0D\u4F7F\u7528 ZIP \u538B\u7F29\n    -P  \u4FDD\u7559\u6587\u4EF6\u540D\u4E2D\u7684\u524D\u5BFC '/'\uFF08\u7EDD\u5BF9\u8DEF\u5F84\uFF09\u548C ".."\uFF08\u7236\u76EE\u5F55\uFF09\u7EC4\u4EF6\n    -M  \u4E0D\u521B\u5EFA\u6761\u76EE\u7684\u6E05\u5355\u6587\u4EF6\n    -i  \u4E3A\u6307\u5B9A\u7684 jar \u6587\u4EF6\u751F\u6210\u7D22\u5F15\u4FE1\u606F\n    -C  \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\u4EE5\u4E0B\u6587\u4EF6\n\u5982\u679C\u4EFB\u4F55\u6587\u4EF6\u4E3A\u76EE\u5F55\uFF0C\u5219\u5BF9\u5176\u8FDB\u884C\u9012\u5F52\u5904\u7406\u3002\n\u6E05\u5355\u6587\u4EF6\u540D\u3001\u6863\u6848\u6587\u4EF6\u540D\u548C\u5165\u53E3\u70B9\u540D\u79F0\u7684\u6307\u5B9A\u987A\u5E8F\n\u4E0E 'm'\u3001'f' \u548C 'e' \u6807\u8BB0\u7684\u6307\u5B9A\u987A\u5E8F\u76F8\u540C\u3002\n\n\u793A\u4F8B 1\uFF1A\u5C06\u4E24\u4E2A\u7C7B\u6587\u4EF6\u5F52\u6863\u5230\u4E00\u4E2A\u540D\u4E3A classes.jar \u7684\u6863\u6848\u4E2D\uFF1A\n       jar cvf classes.jar Foo.class Bar.class \n\u793A\u4F8B 2\uFF1A\u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u6587\u4EF6 'mymanifest' \u5E76\n           \u5C06 foo/ \u76EE\u5F55\u4E2D\u7684\u6240\u6709\u6587\u4EF6\u5F52\u6863\u5230 'classes.jar' \u4E2D\uFF1A\n       jar cvfm classes.jar mymanifest -C foo/ .\n
 
 main.usage.summary=\u7528\u6CD5: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...
 main.usage.summary.try=\u5C1D\u8BD5\u4F7F\u7528 `jar --help' \u83B7\u53D6\u8BE6\u7EC6\u4FE1\u606F\u3002
@@ -106,7 +107,7 @@
 main.help.opt.any.file=\  -f, --file=FILE            \u6863\u6848\u6587\u4EF6\u540D\u3002\u7701\u7565\u65F6, \u57FA\u4E8E\u64CD\u4F5C\n                             \u4F7F\u7528 stdin \u6216 stdout\n      --release VERSION      \u5C06\u4E0B\u9762\u7684\u6240\u6709\u6587\u4EF6\u90FD\u653E\u5728\n                             jar \u7684\u7248\u672C\u5316\u76EE\u5F55\u4E2D (\u5373 META-INF/versions/VERSION/)
 main.help.opt.any.verbose=\  -v, --verbose              \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA
 main.help.opt.create=\ \u4EC5\u5728\u521B\u5EFA\u6A21\u5F0F\u4E0B\u6709\u6548\u7684\u64CD\u4F5C\u4FEE\u9970\u7B26:\n
-main.help.opt.create.normalize=\  -n, --normalize            \u521B\u5EFA\u540E\u5728\u65B0\u7684 jar \u6863\u6848\u4E2D\n                             \u89C4\u8303\u5316\u4FE1\u606F
+main.help.opt.create.normalize=\  -n, --normalize            \u521B\u5EFA\u540E\u5728\u65B0\u7684 jar \u6863\u6848\u4E2D\n                             \u89C4\u8303\u5316\u4FE1\u606F\u3002\u6B64\u9009\u9879\u5DF2\u8FC7\u65F6\uFF0C\n                             \u8BA1\u5212\u5728\u672A\u6765\u7684 JDK \u53D1\u884C\u7248\u4E2D\u5220\u9664
 main.help.opt.create.update=\ \u5728\u521B\u5EFA\u548C\u66F4\u65B0\u6A21\u5F0F\u4E0B\u6709\u6548\u7684\u64CD\u4F5C\u4FEE\u9970\u7B26:\n
 main.help.opt.create.update.main-class=\  -e, --main-class=CLASSNAME \u6346\u7ED1\u5230\u6A21\u5757\u5316\u6216\u53EF\u6267\u884C \n                             jar \u6863\u6848\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n                             \u7684\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9
 main.help.opt.create.update.manifest=\  -m, --manifest=FILE        \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\n                             \u6E05\u5355\u4FE1\u606F
@@ -119,7 +120,7 @@
 main.help.opt.create.update.index=\ \u53EA\u5728\u521B\u5EFA, \u66F4\u65B0\u548C\u751F\u6210\u7D22\u5F15\u6A21\u5F0F\u4E0B\u6709\u6548\u7684\u64CD\u4F5C\u4FEE\u9970\u7B26:\n
 main.help.opt.create.update.index.no-compress=\  -0, --no-compress          \u4EC5\u5B58\u50A8; \u4E0D\u4F7F\u7528 ZIP \u538B\u7F29
 main.help.opt.other=\ \u5176\u4ED6\u9009\u9879:\n
-main.help.opt.other.help=\  -h, --help[:compat]        \u63D0\u4F9B\u6B64\u5E2E\u52A9, \u4E5F\u53EF\u4EE5\u9009\u62E9\u6027\u5730\u63D0\u4F9B\u517C\u5BB9\u6027\u5E2E\u52A9
+main.help.opt.other.help=\  -?, -h, --help[:compat]    \u63D0\u4F9B\u6B64\u5E2E\u52A9\uFF0C\u4E5F\u53EF\u4EE5\u9009\u62E9\u6027\u5730\u63D0\u4F9B\u517C\u5BB9\u6027\u5E2E\u52A9
 main.help.opt.other.help-extra=\      --help-extra           \u63D0\u4F9B\u989D\u5916\u9009\u9879\u7684\u5E2E\u52A9
 main.help.opt.other.version=\      --version              \u8F93\u51FA\u7A0B\u5E8F\u7248\u672C
 main.help.postopt=\ \u5982\u679C\u6A21\u5757\u63CF\u8FF0\u7B26 'module-info.class' \u4F4D\u4E8E\u6307\u5B9A\u76EE\u5F55\u7684\n \u6839\u76EE\u5F55\u4E2D, \u6216\u8005\u4F4D\u4E8E jar \u6863\u6848\u672C\u8EAB\u7684\u6839\u76EE\u5F55\u4E2D, \u5219\n \u8BE5\u6863\u6848\u662F\u4E00\u4E2A\u6A21\u5757\u5316 jar\u3002\u4EE5\u4E0B\u64CD\u4F5C\u53EA\u5728\u521B\u5EFA\u6A21\u5757\u5316 jar,\n \u6216\u66F4\u65B0\u73B0\u6709\u7684\u975E\u6A21\u5757\u5316 jar \u65F6\u6709\u6548: '--module-version',\n '--hash-modules' \u548C '--module-path'\u3002\n\n \u5982\u679C\u4E3A\u957F\u9009\u9879\u63D0\u4F9B\u4E86\u5FC5\u9700\u53C2\u6570\u6216\u53EF\u9009\u53C2\u6570, \u5219\u5B83\u4EEC\u5BF9\u4E8E\n \u4EFB\u4F55\u5BF9\u5E94\u7684\u77ED\u9009\u9879\u4E5F\u662F\u5FC5\u9700\u6216\u53EF\u9009\u7684\u3002
--- a/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,7 @@
 main.warnings=\u8B66\u544A{0}\u500B
 main.warning=\u8B66\u544A{0}\u500B
 
-main.usage=\u4F7F\u7528\u65B9\u6CD5: javadoc [options] [packagenames] [sourcefiles] [@files]\n  -overview <file>                 HTML\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u6982\u8981\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8AAD\u307F\u8FBC\u3080\n  -public                          public\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u306E\u307F\u3092\u793A\u3059\n  -protected                       protected/public\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u3092\u793A\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8)\n  -package                         package/protected/public\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u3092\u793A\u3059\n  -private                         \u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u3092\u793A\u3059\n  -help                            \u30B3\u30DE\u30F3\u30C9\u884C\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8868\u793A\u3057\u3066\u7D42\u4E86\u3059\u308B\n  -doclet <class>                  \u4EE3\u66FFdoclet\u3092\u4ECB\u3057\u3066\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n  -docletpath <path>               doclet\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  --module-source-path <path>      \u8907\u6570\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u5165\u529B\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  --upgrade-module-path <path>     \u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u5834\u6240\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n  --module-path <path>\u3001-p <path>  \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  --add-modules <module>(,<module>)*\n                                   \u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u52A0\u3048\u3066\u89E3\u6C7A\u3059\u308B\u30EB\u30FC\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u3001\u307E\u305F\u306F\n                                   <module>\u304CALL-MODULE-PATH\u3067\u3042\u308B\u5834\u5408\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306E\u3059\u3079\u3066\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3002\n  --limit-modules <module>(,<module>)*\n                                   \u53C2\u7167\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u9818\u57DF\u3092\u5236\u9650\u3059\u308B\n  --source-path <path>             \u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  -sourcepath <path>               \u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  --class-path <path>              \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  -classpath <path>                \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  -cp <path>                       \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  -exclude <pkglist>               \u9664\u5916\u3059\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u30FB\u30EA\u30B9\u30C8\u3092\u6307\u5B9A\u3059\u308B\n  -subpackages <subpkglist>        \u518D\u5E30\u7684\u306B\u30ED\u30FC\u30C9\u3059\u308B\u30B5\u30D6\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u6307\u5B9A\u3059\u308B\n  -breakiterator                   BreakIterator\u3067\u6700\u521D\u306E\u6587\u3092\u8A08\u7B97\u3059\u308B\n  -bootclasspath <path>            \u975E\u30E2\u30B8\u30E5\u30E9\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u4F7F\u7528\u3055\u308C\u308B\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\n                                   \
+main.usage=\u4F7F\u7528\u65B9\u6CD5: javadoc [options] [packagenames] [sourcefiles] [@files]\n  -overview <file>                 HTML\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u6982\u8981\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8AAD\u307F\u8FBC\u3080\n  -public                          public\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u306E\u307F\u3092\u793A\u3059\n  -protected                       protected/public\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u3092\u793A\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8)\n  -package                         package/protected/public\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u3092\u793A\u3059\n  -private                         \u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u3068\u30E1\u30F3\u30D0\u30FC\u3092\u793A\u3059\n  --help                           \u30B3\u30DE\u30F3\u30C9\u884C\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8868\u793A\u3057\u3066\u7D42\u4E86\u3059\u308B\n  -doclet <class>                  \u4EE3\u66FFdoclet\u3092\u4ECB\u3057\u3066\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n  -docletpath <path>               doclet\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  --module-source-path <path>      \u8907\u6570\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u5165\u529B\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  --upgrade-module-path <path>     \u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u5834\u6240\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n  --module-path <path>\u3001-p <path>  \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  --add-modules <module>(,<module>)*\n                                   \u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u52A0\u3048\u3066\u89E3\u6C7A\u3059\u308B\u30EB\u30FC\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u3001\u307E\u305F\u306F\n                                   <module>\u304CALL-MODULE-PATH\u3067\u3042\u308B\u5834\u5408\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306E\u3059\u3079\u3066\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3002\n  --limit-modules <module>(,<module>)*\n                                   \u53C2\u7167\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u9818\u57DF\u3092\u5236\u9650\u3059\u308B\n  --source-path <path>             \u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  -sourcepath <path>               \u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  --class-path <path>              \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  -classpath <path>                \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  -cp <path>                       \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n  -exclude <pkglist>               \u9664\u5916\u3059\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u30FB\u30EA\u30B9\u30C8\u3092\u6307\u5B9A\u3059\u308B\n  -subpackages <subpkglist>        \u518D\u5E30\u7684\u306B\u30ED\u30FC\u30C9\u3059\u308B\u30B5\u30D6\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u6307\u5B9A\u3059\u308B\n  -breakiterator                   BreakIterator\u3067\u6700\u521D\u306E\u6587\u3092\u8A08\u7B97\u3059\u308B\n  -bootclasspath <path>            \u975E\u30E2\u30B8\u30E5\u30E9\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u4F7F\u7528\u3055\u308C\u308B\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\n                                   \
 \u306E\u5834\u6240\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n  --system <jdk>                   \u30E2\u30B8\u30E5\u30E9\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u4F7F\u7528\u3055\u308C\u308B\u30B7\u30B9\u30C6\u30E0\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\n                                   \u306E\u5834\u6240\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\u3002\n  -source <release>                \u6307\u5B9A\u3055\u308C\u305F\u30EA\u30EA\u30FC\u30B9\u3068\u30BD\u30FC\u30B9\u306E\u4E92\u63DB\u6027\u3092\u63D0\u4F9B\u3059\u308B\n  --release <release>              \u6307\u5B9A\u3055\u308C\u305F\u30EA\u30EA\u30FC\u30B9\u3068\u30BD\u30FC\u30B9\u306E\u4E92\u63DB\u6027\u3092\u63D0\u4F9B\u3059\u308B\n  -extdirs <dirlist>               \u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u62E1\u5F35\u6A5F\u80FD\u306E\u5834\u6240\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n  -verbose                         Javadoc\u306E\u52D5\u4F5C\u306B\u3064\u3044\u3066\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B\n  -locale <name>                   en_US\u3084en_US_WIN\u306A\u3069\u306E\u4F7F\u7528\u3059\u308B\u30ED\u30B1\u30FC\u30EB\n  -encoding <name>                 \u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u540D\n  -quiet                           \u72B6\u614B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3057\u306A\u3044\n  -J<flag>                         <flag>\u3092\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u76F4\u63A5\u6E21\u3059\n  -X                               \u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u6982\u8981\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3059\u308B\n
 
 main.usage.foot=\nGNU\u30B9\u30BF\u30A4\u30EB\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u306F\u3001\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u540D\u524D\u3068\u305D\u306E\u5024\u3092\u533A\u5207\u308B\u305F\u3081\u306B\u7A7A\u767D\u3067\u306F\u306A\u304F'='\u3092\n\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\n
@@ -70,7 +70,6 @@
 main.illegal_package_name=\u30D1\u30C3\u30B1\u30FC\u30B8\u540D"{0}"\u306F\u4E0D\u6B63\u3067\u3059
 main.release.bootclasspath.conflict=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306F-release\u3068\u4E00\u7DD2\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
 main.unsupported.release.version=\u30EA\u30EA\u30FC\u30B9\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093
-main.release.not.standard.file.manager=-release\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u304C\u3001\u6307\u5B9A\u3055\u308C\u305FJavaFileManager\u306FStandardJavaFileManager\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
 main.option.invalid.value={0}
 tag.illegal_char_in_arr_dim=\u30BF\u30B0{0}: \u914D\u5217\u306E\u5927\u304D\u3055\u3001\u30E1\u30BD\u30C3\u30C9\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF{1}\u306B\u69CB\u6587\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3059
 tag.illegal_see_tag=\u30BF\u30B0{0}: \u30E1\u30BD\u30C3\u30C9\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF{1}\u306B\u69CB\u6587\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3059
--- a/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -28,8 +28,8 @@
 main.warnings={0} \u4E2A\u8B66\u544A
 main.warning={0} \u4E2A\u8B66\u544A
 
-main.usage=\u7528\u6CD5: javadoc [options] [packagenames] [sourcefiles] [@files]\n  -overview <\u6587\u4EF6>                 \u4ECE HTML \u6587\u4EF6\u8BFB\u53D6\u6982\u89C8\u6587\u6863\n  -public                          \u4EC5\u663E\u793A\u516C\u5171\u7C7B\u548C\u6210\u5458\n  -protected                       \u663E\u793A\u53D7\u4FDD\u62A4/\u516C\u5171\u7C7B\u548C\u6210\u5458 (\u9ED8\u8BA4\u503C)\n  -package                         \u663E\u793A\u7A0B\u5E8F\u5305/\u53D7\u4FDD\u62A4/\u516C\u5171\u7C7B\u548C\u6210\u5458\n  -private                         \u663E\u793A\u6240\u6709\u7C7B\u548C\u6210\u5458\n  -help                            \u663E\u793A\u547D\u4EE4\u884C\u9009\u9879\u5E76\u9000\u51FA\n  -doclet <\u7C7B>                     \u901A\u8FC7\u66FF\u4EE3 doclet \u751F\u6210\u8F93\u51FA\n  -docletpath <\u8DEF\u5F84>               \u6307\u5B9A\u67E5\u627E doclet \u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  --module-source-path <\u8DEF\u5F84>      \u6307\u5B9A\u67E5\u627E\u591A\u4E2A\u6A21\u5757\u7684\u8F93\u5165\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E\n  --upgrade-module-path <\u8DEF\u5F84>     \u8986\u76D6\u53EF\u5347\u7EA7\u6A21\u5757\u4F4D\u7F6E\n  --module-path <\u8DEF\u5F84>, -p <\u8DEF\u5F84>  \u6307\u5B9A\u67E5\u627E\u5E94\u7528\u7A0B\u5E8F\u6A21\u5757\u7684\u4F4D\u7F6E\n  --add-modules <\u6A21\u5757>(,<\u6A21\u5757>)*\n                                   \u9664\u4E86\u521D\u59CB\u6A21\u5757\u4E4B\u5916\u8981\u89E3\u6790\u7684\u6839\u6A21\u5757,\n                                   \u5982\u679C <\u6A21\u5757>\u4E3A ALL-MODULE-PATH, \u5219\u4E3A\u6A21\u5757\u8DEF\u5F84\u4E2D\u7684\u6240\u6709\u6A21\u5757\u3002\n  --limit-modules <\u6A21\u5757>(,<\u6A21\u5757>)*\n                                   \u9650\u5236\u53EF\u89C2\u5BDF\u6A21\u5757\u7684\u9886\u57DF\n  --source-path <\u8DEF\u5F84>             \u6307\u5B9A\u67E5\u627E\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -sourcepath <\u8DEF\u5F84>               \u6307\u5B9A\u67E5\u627E\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E\n  --class-path <\u8DEF\u5F84>              \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -classpath <\u8DEF\u5F84>                \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -cp <\u8DEF\u5F84>                       \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -exclude <\u7A0B\u5E8F\u5305\u5217\u8868>            \u6307\u5B9A\u8981\u6392\u9664\u7684\u7A0B\u5E8F\u5305\u5217\u8868\n  -subpackages <\u7A0B\u5E8F\u5305\u5217\u8868>        \u6307\u5B9A\u8981\u9012\u5F52\u52A0\u8F7D\u7684\u5B50\u7A0B\u5E8F\u5305\n  -breakiterator                   \u8BA1\u7B97\u5E26\u6709 BreakIterator \u7684\u7B2C\u4E00\u4E2A\u8BED\u53E5\n  -bootclasspath <\u8DEF\u5F84>            \u8986\u76D6\u7528\u4E8E\u975E\u6A21\u5757\u5316\u53D1\u884C\u7248\u7684\n                                   \u5E73\u53F0\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  --system <jdk>                   \u8986\u76D6\u7528\u4E8E\u6A21\u5757\u5316\u53D1\u884C\u7248\u7684\n                                   \u7CFB\u7EDF\u6A21\u5757\u7684\u4F4D\u7F6E\u3002\n  -source <\u53D1\u884C\u7248>                 \u63D0\u4F9B\u4E0E\u6307\u5B9A\u53D1\u884C\u7248\u7684\u6E90\u517C\u5BB9\u6027\n  --release <\u53D1\u884C\u7248>               \u63D0\u4F9B\u4E0E\u6307\u5B9A\u53D1\u884C\u7248\u7684\u6E90\u517C\u5BB9\u6027\n  -extdirs <\u76EE\u5F55\u5217\u8868>              \u8986\u76D6\u6240\u5B89\u88C5\u6269\u5C55\u7684\u4F4D\u7F6E\n  -verbose                         \u8F93\u51FA\u6709\u5173 Javadoc \u6B63\u5728\u6267\u884C\u7684\u64CD\u4F5C\u7684\u6D88\u606F\n  -locale <\u540D\u79F0>                   \u8981\u4F7F\u7528\u7684\u533A\u57DF\u8BBE\u7F6E, \u4F8B\u5982 en_US \u6216 en_US_WIN\n  -encoding <\u540D\u79F0>                 \u6E90\u6587\u4EF6\u7F16\u7801\u540D\u79F0\n  -quiet                           \u4E0D\u663E\u793A\u72B6\u6001\u6D88\u606F\n  -J<\u6807\u8BB0>                         \u76F4\u63A5\u5C06 <\u6807\u8BB0> \
-\u4F20\u9012\u5230\u8FD0\u884C\u65F6\u7CFB\u7EDF\n  -X                               \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u63D0\u8981\u5E76\u9000\u51FA\n
+main.usage=\u7528\u6CD5\uFF1Ajavadoc [\u9009\u9879] [\u7A0B\u5E8F\u5305\u540D\u79F0] [\u6E90\u6587\u4EF6] [@files]\n  -overview <\u6587\u4EF6>                 \u4ECE HTML \u6587\u4EF6\u8BFB\u53D6\u6982\u89C8\u6587\u6863\n  -public                          \u4EC5\u663E\u793A\u516C\u5171\u7C7B\u548C\u6210\u5458\n  -protected                       \u663E\u793A\u53D7\u4FDD\u62A4/\u516C\u5171\u7C7B\u548C\u6210\u5458\uFF08\u9ED8\u8BA4\u503C\uFF09\n  -package                         \u663E\u793A\u7A0B\u5E8F\u5305/\u53D7\u4FDD\u62A4/\u516C\u5171\u7C7B\u548C\u6210\u5458\n  -private                         \u663E\u793A\u6240\u6709\u7C7B\u548C\u6210\u5458\n  --help                           \u663E\u793A\u547D\u4EE4\u884C\u9009\u9879\u5E76\u9000\u51FA\n  -doclet <\u7C7B>                     \u901A\u8FC7\u66FF\u4EE3 doclet \u751F\u6210\u8F93\u51FA\n  -docletpath <\u8DEF\u5F84>               \u6307\u5B9A\u67E5\u627E doclet \u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  --module-source-path <\u8DEF\u5F84>      \u6307\u5B9A\u67E5\u627E\u591A\u4E2A\u6A21\u5757\u7684\u8F93\u5165\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E\n  --upgrade-module-path <\u8DEF\u5F84>     \u8986\u76D6\u53EF\u5347\u7EA7\u6A21\u5757\u4F4D\u7F6E\n  --module-path <\u8DEF\u5F84>, -p <\u8DEF\u5F84>  \u6307\u5B9A\u67E5\u627E\u5E94\u7528\u7A0B\u5E8F\u6A21\u5757\u7684\u4F4D\u7F6E\n  --add-modules <\u6A21\u5757>(,<\u6A21\u5757>)*\n                                   \u9664\u4E86\u521D\u59CB\u6A21\u5757\u4E4B\u5916\u8981\u89E3\u6790\u7684\u6839\u6A21\u5757\uFF0C\n                                   \u5982\u679C <\u6A21\u5757>\u4E3A ALL-MODULE-PATH\uFF0C\u5219\u4E3A\u6A21\u5757\u8DEF\u5F84\u4E2D\u7684\u6240\u6709\u6A21\u5757\u3002\n  --limit-modules <\u6A21\u5757>(,<\u6A21\u5757>)*\n                                   \u9650\u5236\u53EF\u89C2\u5BDF\u6A21\u5757\u7684\u9886\u57DF\n  --source-path <\u8DEF\u5F84>             \u6307\u5B9A\u67E5\u627E\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -sourcepath <\u8DEF\u5F84>               \u6307\u5B9A\u67E5\u627E\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E\n  --class-path <\u8DEF\u5F84>              \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -classpath <\u8DEF\u5F84>                \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -cp <\u8DEF\u5F84>                       \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -exclude <\u7A0B\u5E8F\u5305\u5217\u8868>            \u6307\u5B9A\u8981\u6392\u9664\u7684\u7A0B\u5E8F\u5305\u5217\u8868\n  -subpackages <\u7A0B\u5E8F\u5305\u5217\u8868>        \u6307\u5B9A\u8981\u9012\u5F52\u52A0\u8F7D\u7684\u5B50\u7A0B\u5E8F\u5305\n  -breakiterator                   \u8BA1\u7B97\u5E26\u6709 BreakIterator \u7684\u7B2C\u4E00\u4E2A\u8BED\u53E5\n  -bootclasspath <\u8DEF\u5F84>            \u8986\u76D6\u7528\u4E8E\u975E\u6A21\u5757\u5316\u53D1\u884C\u7248\u7684\n                                   \u5E73\u53F0\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  --system <jdk>                   \u8986\u76D6\u7528\u4E8E\u6A21\u5757\u5316\u53D1\u884C\u7248\u7684\n                                   \u7CFB\u7EDF\u6A21\u5757\u7684\u4F4D\u7F6E\u3002\n  -source <\u53D1\u884C\u7248>                 \u63D0\u4F9B\u4E0E\u6307\u5B9A\u53D1\u884C\u7248\u7684\u6E90\u517C\u5BB9\u6027\n  --release <\u53D1\u884C\u7248>               \u63D0\u4F9B\u4E0E\u6307\u5B9A\u53D1\u884C\u7248\u7684\u6E90\u517C\u5BB9\u6027\n  -extdirs <\u76EE\u5F55\u5217\u8868>              \u8986\u76D6\u6240\u5B89\u88C5\u6269\u5C55\u7684\u4F4D\u7F6E\n  -verbose                         \u8F93\u51FA\u6709\u5173 Javadoc \u6B63\u5728\u6267\u884C\u7684\u64CD\u4F5C\u7684\u6D88\u606F\n  -locale <\u540D\u79F0>                   \u8981\u4F7F\u7528\u7684\u533A\u57DF\u8BBE\u7F6E\uFF0C\u4F8B\u5982 en_US \u6216 en_US_WIN\n  -encoding <\u540D\u79F0>                 \u6E90\u6587\u4EF6\u7F16\u7801\u540D\u79F0\n  -quiet                           \u4E0D\u663E\u793A\u72B6\u6001\u6D88\u606F\n  -J<\u6807\u8BB0>                         \
+\u76F4\u63A5\u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FD0\u884C\u65F6\u7CFB\u7EDF\n  -X                               \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u63D0\u8981\u5E76\u9000\u51FA\n
 
 main.usage.foot=\nGNU \u6837\u5F0F\u7684\u9009\u9879\u53EF\u4F7F\u7528 '=' (\u800C\u975E\u7A7A\u767D) \u6765\u5206\u9694\u9009\u9879\u540D\u79F0\n\u53CA\u5176\u503C\u3002\n
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java	Fri Jul 27 12:16:01 2018 +0100
@@ -893,7 +893,7 @@
         return getDocLink(context, typeElement, element, label, strong, false);
     }
 
-   /**
+    /**
      * Return the link for the given member.
      *
      * @param context the id of the context where the link will be printed.
@@ -913,22 +913,26 @@
 
     public Content getDocLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element element,
             Content label, boolean strong, boolean isProperty) {
-        if (! (utils.isIncluded(element) || utils.isLinkable(typeElement))) {
+        if (!utils.isLinkable(typeElement, element)) {
             return label;
-        } else if (utils.isExecutableElement(element)) {
+        }
+
+        if (utils.isExecutableElement(element)) {
             ExecutableElement ee = (ExecutableElement)element;
             return getLink(new LinkInfoImpl(configuration, context, typeElement)
                 .label(label)
                 .where(links.getName(getAnchor(ee, isProperty)))
                 .strong(strong));
-        } else if (utils.isVariableElement(element) || utils.isTypeElement(element)) {
+        }
+
+        if (utils.isVariableElement(element) || utils.isTypeElement(element)) {
             return getLink(new LinkInfoImpl(configuration, context, typeElement)
                 .label(label)
                 .where(links.getName(element.getSimpleName().toString()))
                 .strong(strong));
-        } else {
-            return label;
         }
+
+        return label;
     }
 
     /**
@@ -982,7 +986,6 @@
     }
 
     public Content seeTagToContent(Element element, DocTree see) {
-
         Kind kind = see.getKind();
         if (!(kind == LINK || kind == SEE || kind == LINK_PLAIN)) {
             return new ContentBuilder();
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java	Fri Jul 27 12:16:01 2018 +0100
@@ -273,11 +273,9 @@
      */
     public Content seeTagOutput(Element holder, List<? extends DocTree> seeTags) {
         ContentBuilder body = new ContentBuilder();
-        if (!seeTags.isEmpty()) {
-            for (DocTree dt : seeTags) {
-                appendSeparatorIfNotEmpty(body);
-                body.addContent(htmlWriter.seeTagToContent(holder, dt));
-            }
+        for (DocTree dt : seeTags) {
+            appendSeparatorIfNotEmpty(body);
+            body.addContent(htmlWriter.seeTagToContent(holder, dt));
         }
         if (utils.isVariableElement(holder) && ((VariableElement)holder).getConstantValue() != null &&
                 htmlWriter instanceof ClassWriterImpl) {
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -16,16 +16,6 @@
 doclet.Interface_Hierarchy=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u968E\u5C64
 doclet.Enum_Hierarchy=\u5217\u6319\u578B\u968E\u5C64
 doclet.Annotation_Type_Hierarchy=\u6CE8\u91C8\u578B\u968E\u5C64
-doclet.Prev=\u524D
-doclet.Next=\u6B21
-doclet.Prev_Class=\u524D\u306E\u30AF\u30E9\u30B9
-doclet.Next_Class=\u6B21\u306E\u30AF\u30E9\u30B9
-doclet.Prev_Package=\u524D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8
-doclet.Next_Package=\u6B21\u306E\u30D1\u30C3\u30B1\u30FC\u30B8
-doclet.Prev_Module=\u524D\u306E\u30E2\u30B8\u30E5\u30FC\u30EB
-doclet.Next_Module=\u6B21\u306E\u30E2\u30B8\u30E5\u30FC\u30EB
-doclet.Prev_Letter=\u524D\u306E\u6587\u5B57
-doclet.Next_Letter=\u6B21\u306E\u6587\u5B57
 doclet.Href_Class_Title={0}\u5185\u306E\u30AF\u30E9\u30B9
 doclet.Href_Interface_Title={0}\u5185\u306E\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
 doclet.Href_Annotation_Title={0}\u5185\u306E\u6CE8\u91C8
@@ -100,47 +90,51 @@
 doclet.Description_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u8AAC\u660E:
 doclet.Description_From_Class=\u30AF\u30E9\u30B9\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u8AAC\u660E:
 doclet.No_Non_Deprecated_Classes_To_Document=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3059\u308B\u975E\u63A8\u5968\u4EE5\u5916\u306E\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
-doclet.Interfaces_Italic=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9(\u30A4\u30BF\u30EA\u30C3\u30AF)
+doclet.Interfaces=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
 doclet.Enclosing_Class=\u542B\u307E\u308C\u3066\u3044\u308B\u30AF\u30E9\u30B9:
 doclet.Enclosing_Interface=\u542B\u307E\u308C\u3066\u3044\u308B\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9:
 doclet.Window_Source_title=\u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9
 doclet.Window_Help_title=API\u30D8\u30EB\u30D7
-doclet.Help_line_1=API\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u69CB\u6210
-doclet.Help_line_2=\u3053\u306EAPI(Application Programming Interface)\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u3001\u6B21\u306B\u8AAC\u660E\u3059\u308B\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306B\u3042\u308B\u9805\u76EE\u306B\u5BFE\u5FDC\u3059\u308B\u30DA\u30FC\u30B8\u304C\u542B\u307E\u308C\u307E\u3059\u3002
-doclet.Help_line_3={0}\u30DA\u30FC\u30B8\u306FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30D5\u30ED\u30F3\u30C8\u30FB\u30DA\u30FC\u30B8\u3067\u3001\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981\u3092\u542B\u3080\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30EA\u30B9\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4E00\u9023\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981\u8AAC\u660E\u3082\u8868\u793A\u3055\u308C\u307E\u3059\u3002
-doclet.Help_line_4=\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u306F\u3001\u305D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8\u3068\u3001\u305D\u308C\u305E\u308C\u306E\u6982\u8981\u3092\u542B\u3080\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306F6\u3064\u306E\u30AB\u30C6\u30B4\u30EA\u3067\u69CB\u6210\u3055\u308C\u307E\u3059\u3002
-doclet.Help_line_5=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
-doclet.Help_line_6=\u5404\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30CD\u30B9\u30C8\u3055\u308C\u305F\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30CD\u30B9\u30C8\u3055\u308C\u305F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u306F\u500B\u5225\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u5404\u30DA\u30FC\u30B8\u306B\u306F\u6B21\u306E\u3088\u3046\u306B\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u8AAC\u660E\u3068\u3001\u6982\u8981\u8868\u304A\u3088\u3073\u30E1\u30F3\u30D0\u30FC\u306E\u8A73\u7D30\u8AAC\u660E\u304C\u542B\u307E\u308C\u307E\u3059\u3002
-doclet.Help_line_7=\u30AF\u30E9\u30B9\u968E\u5C64\u8868\u793A
-doclet.Help_line_8=\u76F4\u7CFB\u306E\u30B5\u30D6\u30AF\u30E9\u30B9
-doclet.Help_line_9=\u65E2\u77E5\u306E\u30B5\u30D6\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8
-doclet.Help_line_10=\u65E2\u77E5\u306E\u5B9F\u88C5\u30AF\u30E9\u30B9\u306E\u30EA\u30B9\u30C8
-doclet.Help_line_11=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u5BA3\u8A00
-doclet.Help_line_12=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u8AAC\u660E
-doclet.Help_line_13=\u5404\u6982\u8981\u30A8\u30F3\u30C8\u30EA\u306B\u306F\u3001\u305D\u306E\u9805\u76EE\u306E\u8A73\u7D30\u306A\u8AAC\u660E\u306E\u4E2D\u304B\u30891\u884C\u76EE\u306E\u6587\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u8A73\u7D30\u306A\u8AAC\u660E\u306F\u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9\u306B\u73FE\u308C\u308B\u9806\u306B\u4E26\u3079\u3089\u308C\u307E\u3059\u304C\u3001\u6982\u8981\u30A8\u30F3\u30C8\u30EA\u306F\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306B\u4E26\u3079\u3089\u308C\u307E\u3059\u3002\u3053\u308C\u306B\u3088\u3063\u3066\u3001\u30D7\u30ED\u30B0\u30E9\u30DE\u304C\u8A2D\u5B9A\u3057\u305F\u8AD6\u7406\u7684\u306A\u30B0\u30EB\u30FC\u30D7\u5206\u3051\u304C\u4FDD\u6301\u3055\u308C\u307E\u3059\u3002
-doclet.Help_line_14=\u4F7F\u7528
-doclet.Help_line_15=\u5404\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3055\u308C\u305F\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u306F\u305D\u308C\u305E\u308C\u300C\u4F7F\u7528\u300D\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306B\u306F\u3001\u3069\u306E\u3088\u3046\u306A\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u3001\u30E1\u30BD\u30C3\u30C9\u3001\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u304A\u3088\u3073\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3001\u7279\u5B9A\u306E\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u4E00\u90E8\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u304B\u304C\u8A18\u8FF0\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u305F\u3068\u3048\u3070\u3001\u30AF\u30E9\u30B9A\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9A\u306E\u5834\u5408\u3001\u305D\u306E\u300C\u4F7F\u7528\u300D\u30DA\u30FC\u30B8\u306B\u306F\u3001A\u306E\u30B5\u30D6\u30AF\u30E9\u30B9\u3001A\u3068\u3057\u3066\u5BA3\u8A00\u3055\u308C\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u3001A\u3092\u8FD4\u3059\u30E1\u30BD\u30C3\u30C9\u3068\u3001\u578BA\u3092\u6301\u3064\u30E1\u30BD\u30C3\u30C9\u304A\u3088\u3073\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u304C\u542B\u307E\u308C\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u306B\u306F\u3001\u307E\u305A\u305D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u79FB\u52D5\u3057\u3001\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306E\u300C\u4F7F\u7528\u300D\u30EA\u30F3\u30AF\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-doclet.Help_line_16=\u968E\u5C64\u30C4\u30EA\u30FC(\u30AF\u30E9\u30B9\u968E\u5C64)
-doclet.Help_line_17_with_tree_link=\u3059\u3079\u3066\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u306F{0}\u30DA\u30FC\u30B8\u304C\u3042\u308A\u3001\u3055\u3089\u306B\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u968E\u5C64\u304C\u3042\u308A\u307E\u3059\u3002\u5404\u968E\u5C64\u30DA\u30FC\u30B8\u306F\u3001\u30AF\u30E9\u30B9\u306E\u30EA\u30B9\u30C8\u3068\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8\u3092\u542B\u307F\u307E\u3059\u3002\u30AF\u30E9\u30B9\u306F{1}\u3092\u958B\u59CB\u70B9\u3068\u3059\u308B\u7D99\u627F\u69CB\u9020\u3067\u7DE8\u6210\u3055\u308C\u307E\u3059\u3002\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306F\u3001{1}\u304B\u3089\u306F\u7D99\u627F\u3057\u307E\u305B\u3093\u3002
-doclet.Help_line_18=\u6982\u8981\u30DA\u30FC\u30B8\u3092\u8868\u793A\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u300C\u968E\u5C64\u30C4\u30EA\u30FC\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u3001\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u968E\u5C64\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
-doclet.Help_line_19=\u7279\u5B9A\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u8868\u793A\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u300C\u968E\u5C64\u30C4\u30EA\u30FC\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u3001\u8A72\u5F53\u3059\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u307F\u306E\u968E\u5C64\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
-doclet.Help_line_20_with_deprecated_api_link={0}\u30DA\u30FC\u30B8\u306F\u3001\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u3059\u3079\u3066\u306EAPI\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u975E\u63A8\u5968API\u3068\u306F\u3001\u6A5F\u80FD\u6539\u826F\u306A\u3069\u306E\u7406\u7531\u304B\u3089\u4F7F\u7528\u3092\u304A\u85A6\u3081\u3067\u304D\u306A\u304F\u306A\u3063\u305FAPI\u306E\u3053\u3068\u3067\u3001\u901A\u5E38\u306F\u305D\u308C\u306B\u4EE3\u308F\u308BAPI\u304C\u63D0\u4F9B\u3055\u308C\u307E\u3059\u3002\u975E\u63A8\u5968API\u306F\u4ECA\u5F8C\u306E\u5B9F\u88C5\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
-doclet.Help_line_21=\u7D22\u5F15
-doclet.Help_line_22={0}\u306B\u306F\u3001\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u3001\u30E1\u30BD\u30C3\u30C9\u304A\u3088\u3073\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306E\u30EA\u30B9\u30C8\u304C\u542B\u307E\u308C\u307E\u3059\u3002
-doclet.Help_line_23=\u524D/\u6B21
-doclet.Help_line_24=\u3053\u308C\u3089\u306E\u30EA\u30F3\u30AF\u306B\u3088\u308A\u3001\u524D\u307E\u305F\u306F\u6B21\u306E\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30D1\u30C3\u30B1\u30FC\u30B8\u307E\u305F\u306F\u95A2\u9023\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\u3067\u304D\u307E\u3059\u3002
-doclet.Help_line_25=\u30D5\u30EC\u30FC\u30E0/\u30D5\u30EC\u30FC\u30E0\u306A\u3057
-doclet.Help_line_26=\u3053\u308C\u3089\u306E\u30EA\u30F3\u30AF\u306FHTML\u30D5\u30EC\u30FC\u30E0\u306E\u8868\u793A\u3068\u975E\u8868\u793A\u3092\u5207\u308A\u66FF\u3048\u307E\u3059\u3002\u3059\u3079\u3066\u306E\u30DA\u30FC\u30B8\u306F\u30D5\u30EC\u30FC\u30E0\u3042\u308A\u3067\u3082\u3001\u30D5\u30EC\u30FC\u30E0\u306A\u3057\u3067\u3082\u8868\u793A\u3067\u304D\u307E\u3059\u3002
-doclet.Help_line_27={0}\u30EA\u30F3\u30AF\u306B\u306F\u3001\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9(\u975Estatic\u306E\u30CD\u30B9\u30C8\u3055\u308C\u305F\u578B\u3092\u9664\u304F)\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
-doclet.Help_line_28=\u76F4\u5217\u5316\u53EF\u80FD\u307E\u305F\u306F\u5916\u90E8\u5316\u53EF\u80FD\u306A\u5404\u30AF\u30E9\u30B9\u306F\u3001\u76F4\u5217\u5316\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u30E1\u30BD\u30C3\u30C9\u306E\u8AAC\u660E\u3092\u542B\u307F\u307E\u3059\u3002\u3053\u306E\u60C5\u5831\u306F\u3001API\u3092\u4F7F\u7528\u3059\u308B\u958B\u767A\u8005\u3067\u306F\u306A\u304F\u3001\u518D\u5B9F\u88C5\u3092\u884C\u3046\u62C5\u5F53\u8005\u306B\u5F79\u7ACB\u3061\u307E\u3059\u3002\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306B\u30EA\u30F3\u30AF\u304C\u306A\u3044\u5834\u5408\u3001\u76F4\u5217\u5316\u3055\u308C\u305F\u30AF\u30E9\u30B9\u306B\u79FB\u52D5\u3057\u3066\u3001\u30AF\u30E9\u30B9\u8A18\u8FF0\u306E\u300C\u95A2\u9023\u9805\u76EE\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u3042\u308B\u300C\u76F4\u5217\u5316\u3055\u308C\u305F\u5F62\u5F0F\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3053\u3068\u306B\u3088\u308A\u3001\u3053\u306E\u60C5\u5831\u3092\u8868\u793A\u3067\u304D\u307E\u3059\u3002
-doclet.Help_line_29={0}\u30DA\u30FC\u30B8\u306B\u306F\u3001static final\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u305D\u306E\u5024\u306E\u30EA\u30B9\u30C8\u304C\u3042\u308A\u307E\u3059\u3002
-doclet.Help_line_30=\u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u6A19\u6E96doclet\u3092\u4F7F\u7528\u3057\u3066\u751F\u6210\u3055\u308C\u305FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002
-doclet.Help_enum_line_1=\u5404\u5217\u6319\u578B\u306B\u306F\u3001\u305D\u308C\u81EA\u8EAB\u306E\u500B\u5225\u306E\u30DA\u30FC\u30B8\u3068\u6B21\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:
-doclet.Help_enum_line_2=\u5217\u6319\u578B\u306E\u5BA3\u8A00
-doclet.Help_enum_line_3=\u5217\u6319\u578B\u306E\u8AAC\u660E
-doclet.Help_annotation_type_line_1=\u5404\u6CE8\u91C8\u578B\u306B\u306F\u3001\u305D\u308C\u81EA\u8EAB\u306E\u500B\u5225\u306E\u30DA\u30FC\u30B8\u3068\u6B21\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:
-doclet.Help_annotation_type_line_2=\u6CE8\u91C8\u578B\u306E\u5BA3\u8A00
-doclet.Help_annotation_type_line_3=\u6CE8\u91C8\u578B\u306E\u8AAC\u660E
+
+doclet.help.main_heading=API\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u69CB\u6210
+doclet.help.intro=\u3053\u306EAPI(Application Programming Interface)\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u3001\u6B21\u306B\u8AAC\u660E\u3059\u308B\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306B\u3042\u308B\u9805\u76EE\u306B\u5BFE\u5FDC\u3059\u308B\u30DA\u30FC\u30B8\u304C\u542B\u307E\u308C\u307E\u3059\u3002
+doclet.help.overview.modules.body=The {0} page is the front page of this API document and provides a list of all modules with a summary for each.  This page can also contain an overall description of the set of modules.
+doclet.help.overview.packages.body={0}\u30DA\u30FC\u30B8\u306FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30D5\u30ED\u30F3\u30C8\u30FB\u30DA\u30FC\u30B8\u3067\u3001\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981\u3092\u542B\u3080\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30EA\u30B9\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4E00\u9023\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981\u8AAC\u660E\u3082\u8868\u793A\u3055\u308C\u307E\u3059\u3002
+doclet.help.package.intro=Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:
+doclet.help.module.intro=Each module has a page that contains a list of its packages, dependencies on other modules, and services, with a summary for each. These page may contain three categories:
+doclet.help.class_interface.head=Class or Interface
+doclet.help.class_interface.intro=\u5404\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30CD\u30B9\u30C8\u3055\u308C\u305F\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30CD\u30B9\u30C8\u3055\u308C\u305F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u306F\u500B\u5225\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u5404\u30DA\u30FC\u30B8\u306B\u306F\u6B21\u306E\u3088\u3046\u306B\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u8AAC\u660E\u3068\u3001\u6982\u8981\u8868\u304A\u3088\u3073\u30E1\u30F3\u30D0\u30FC\u306E\u8A73\u7D30\u8AAC\u660E\u304C\u542B\u307E\u308C\u307E\u3059\u3002
+doclet.help.class_interface.inheritance_diagram=Class Inheritance Diagram
+doclet.help.class_interface.subclasses=\u76F4\u7CFB\u306E\u30B5\u30D6\u30AF\u30E9\u30B9
+doclet.help.class_interface.subinterfaces=\u65E2\u77E5\u306E\u30B5\u30D6\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8
+doclet.help.class_interface.implementations=\u65E2\u77E5\u306E\u5B9F\u88C5\u30AF\u30E9\u30B9\u306E\u30EA\u30B9\u30C8
+doclet.help.class_interface.declaration=Class or Interface Declaration
+doclet.help.class_interface.description=Class or Interface Description
+doclet.help.class_interface.summary=\u5404\u6982\u8981\u30A8\u30F3\u30C8\u30EA\u306B\u306F\u3001\u305D\u306E\u9805\u76EE\u306E\u8A73\u7D30\u306A\u8AAC\u660E\u306E\u4E2D\u304B\u30891\u884C\u76EE\u306E\u6587\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u8A73\u7D30\u306A\u8AAC\u660E\u306F\u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9\u306B\u73FE\u308C\u308B\u9806\u306B\u4E26\u3079\u3089\u308C\u307E\u3059\u304C\u3001\u6982\u8981\u30A8\u30F3\u30C8\u30EA\u306F\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306B\u4E26\u3079\u3089\u308C\u307E\u3059\u3002\u3053\u308C\u306B\u3088\u3063\u3066\u3001\u30D7\u30ED\u30B0\u30E9\u30DE\u304C\u8A2D\u5B9A\u3057\u305F\u8AD6\u7406\u7684\u306A\u30B0\u30EB\u30FC\u30D7\u5206\u3051\u304C\u4FDD\u6301\u3055\u308C\u307E\u3059\u3002
+doclet.help.use.head=\u4F7F\u7528
+doclet.help.use.body=Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+doclet.help.tree.head=\u968E\u5C64\u30C4\u30EA\u30FC(\u30AF\u30E9\u30B9\u968E\u5C64)
+doclet.help.tree.intro=There is a {0} page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with {1}. Interfaces do not inherit from {1}.
+doclet.help.tree.overview=\u6982\u8981\u30DA\u30FC\u30B8\u3092\u8868\u793A\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u300C\u968E\u5C64\u30C4\u30EA\u30FC\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u3001\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u968E\u5C64\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
+doclet.help.tree.package=When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.
+doclet.help.deprecated.body={0}\u30DA\u30FC\u30B8\u306F\u3001\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u3059\u3079\u3066\u306EAPI\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u975E\u63A8\u5968API\u3068\u306F\u3001\u6A5F\u80FD\u6539\u826F\u306A\u3069\u306E\u7406\u7531\u304B\u3089\u4F7F\u7528\u3092\u304A\u85A6\u3081\u3067\u304D\u306A\u304F\u306A\u3063\u305FAPI\u306E\u3053\u3068\u3067\u3001\u901A\u5E38\u306F\u305D\u308C\u306B\u4EE3\u308F\u308BAPI\u304C\u63D0\u4F9B\u3055\u308C\u307E\u3059\u3002\u975E\u63A8\u5968API\u306F\u4ECA\u5F8C\u306E\u5B9F\u88C5\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
+doclet.help.index.head=\u7D22\u5F15
+doclet.help.index.body=The {0} contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.
+doclet.help.frames.head=\u30D5\u30EC\u30FC\u30E0/\u30D5\u30EC\u30FC\u30E0\u306A\u3057
+doclet.help.frames.body=\u3053\u308C\u3089\u306E\u30EA\u30F3\u30AF\u306FHTML\u30D5\u30EC\u30FC\u30E0\u306E\u8868\u793A\u3068\u975E\u8868\u793A\u3092\u5207\u308A\u66FF\u3048\u307E\u3059\u3002\u3059\u3079\u3066\u306E\u30DA\u30FC\u30B8\u306F\u30D5\u30EC\u30FC\u30E0\u3042\u308A\u3067\u3082\u3001\u30D5\u30EC\u30FC\u30E0\u306A\u3057\u3067\u3082\u8868\u793A\u3067\u304D\u307E\u3059\u3002
+doclet.help.all_classes.body={0}\u30EA\u30F3\u30AF\u306B\u306F\u3001\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9(\u975Estatic\u306E\u30CD\u30B9\u30C8\u3055\u308C\u305F\u578B\u3092\u9664\u304F)\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
+doclet.help.serial_form.body=\u76F4\u5217\u5316\u53EF\u80FD\u307E\u305F\u306F\u5916\u90E8\u5316\u53EF\u80FD\u306A\u5404\u30AF\u30E9\u30B9\u306F\u3001\u76F4\u5217\u5316\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u30E1\u30BD\u30C3\u30C9\u306E\u8AAC\u660E\u3092\u542B\u307F\u307E\u3059\u3002\u3053\u306E\u60C5\u5831\u306F\u3001API\u3092\u4F7F\u7528\u3059\u308B\u958B\u767A\u8005\u3067\u306F\u306A\u304F\u3001\u518D\u5B9F\u88C5\u3092\u884C\u3046\u62C5\u5F53\u8005\u306B\u5F79\u7ACB\u3061\u307E\u3059\u3002\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306B\u30EA\u30F3\u30AF\u304C\u306A\u3044\u5834\u5408\u3001\u76F4\u5217\u5316\u3055\u308C\u305F\u30AF\u30E9\u30B9\u306B\u79FB\u52D5\u3057\u3066\u3001\u30AF\u30E9\u30B9\u8A18\u8FF0\u306E\u300C\u95A2\u9023\u9805\u76EE\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u3042\u308B\u300C\u76F4\u5217\u5316\u3055\u308C\u305F\u5F62\u5F0F\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3053\u3068\u306B\u3088\u308A\u3001\u3053\u306E\u60C5\u5831\u3092\u8868\u793A\u3067\u304D\u307E\u3059\u3002
+doclet.help.constants.body={0}\u30DA\u30FC\u30B8\u306B\u306F\u3001static final\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u305D\u306E\u5024\u306E\u30EA\u30B9\u30C8\u304C\u3042\u308A\u307E\u3059\u3002
+doclet.help.footnote=This help file applies to API documentation generated by the standard doclet.
+doclet.help.enum.intro=\u5404\u5217\u6319\u578B\u306B\u306F\u3001\u305D\u308C\u81EA\u8EAB\u306E\u500B\u5225\u306E\u30DA\u30FC\u30B8\u3068\u6B21\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:
+doclet.help.enum.declaration=\u5217\u6319\u5BA3\u8A00
+doclet.help.enum.definition=Enum Description
+doclet.help.annotation_type.intro=\u5404\u6CE8\u91C8\u578B\u306B\u306F\u3001\u305D\u308C\u81EA\u8EAB\u306E\u500B\u5225\u306E\u30DA\u30FC\u30B8\u3068\u6B21\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:
+doclet.help.annotation_type.declaration=Annotation Type Declaration
+doclet.help.annotation_type.description=Annotation Type Description
+doclet.help.search.head=Search
+doclet.help.search.body=You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".
+
 doclet.ClassUse_Packages.that.use.0={0}\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u30D1\u30C3\u30B1\u30FC\u30B8
 doclet.ClassUse_Uses.of.0.in.1={1}\u3067\u306E{0}\u306E\u4F7F\u7528
 doclet.ClassUse_Classes.in.0.used.by.1={1}\u306B\u3088\u308A\u4F7F\u7528\u3055\u308C\u308B{0}\u306E\u30AF\u30E9\u30B9
@@ -240,6 +234,8 @@
 
 doclet.usage.nodeprecatedlist.description=\u975E\u63A8\u5968\u306E\u30EA\u30B9\u30C8\u3092\u751F\u6210\u3057\u307E\u305B\u3093
 
+doclet.usage.no-module-directories.description=\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u30E2\u30B8\u30E5\u30FC\u30EB\u56FA\u6709\n\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u30B0\u30EB\u30FC\u30D7\u5316\u3057\u307E\u305B\u3093
+
 doclet.usage.notree.description=\u30AF\u30E9\u30B9\u968E\u5C64\u3092\u751F\u6210\u3057\u307E\u305B\u3093
 
 doclet.usage.noindex.description=\u7D22\u5F15\u3092\u751F\u6210\u3057\u307E\u305B\u3093
@@ -262,7 +258,7 @@
 doclet.usage.charset.parameters=<charset>
 doclet.usage.charset.description=\u751F\u6210\u3055\u308C\u308B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30AF\u30ED\u30B9\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306E\u6587\u5B57\u30BB\u30C3\u30C8
 
-doclet.usage.javafx.description=javafx\u6A5F\u80FD\u3092\u6709\u52B9\u306B\u3057\u307E\u3059
+doclet.usage.javafx.description=JavaFX\u6A5F\u80FD\u3092\u6709\u52B9\u306B\u3057\u307E\u3059
 
 doclet.usage.helpfile.parameters=<file>
 doclet.usage.helpfile.description=\u30D8\u30EB\u30D7\u30FB\u30EA\u30F3\u30AF\u306E\u30EA\u30F3\u30AF\u5148\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3081\u307E\u3059
@@ -280,9 +276,9 @@
 doclet.usage.docencoding.parameters=<name>
 doclet.usage.docencoding.description=\u51FA\u529B\u306E\u6587\u5B57\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u6307\u5B9A\u3057\u307E\u3059
 
-doclet.usage.frames.description=\u751F\u6210\u3055\u308C\u305F\u51FA\u529B\u3067\u30D5\u30EC\u30FC\u30E0\u306E\u4F7F\u7528\u3092\u6709\u52B9\u306B\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8)
+doclet.usage.frames.description=\u751F\u6210\u3055\u308C\u305F\u51FA\u529B\u3067\u30D5\u30EC\u30FC\u30E0\u306E\u4F7F\u7528\u3092\u6709\u52B9\u306B\u3057\u307E\u3059
 
-doclet.usage.no-frames.description=\u751F\u6210\u3055\u308C\u305F\u51FA\u529B\u3067\u30D5\u30EC\u30FC\u30E0\u306E\u4F7F\u7528\u3092\u7121\u52B9\u306B\u3057\u307E\u3059
+doclet.usage.no-frames.description=\u751F\u6210\u3055\u308C\u305F\u51FA\u529B\u3067\u30D5\u30EC\u30FC\u30E0\u306E\u4F7F\u7528\u3092\u7121\u52B9\u306B\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8)
 
 doclet.usage.override-methods.parameters=(\u8A73\u7D30|\u8981\u7D04)
 
@@ -303,4 +299,7 @@
 doclet.usage.xdoclint-package.description=\u7279\u5B9A\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30C1\u30A7\u30C3\u30AF\u3092\u6709\u52B9\u307E\u305F\u306F\u7121\u52B9\u306B\u3057\u307E\u3059\u3002<packages>\u306F\n\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3089\u308C\u305F\u30D1\u30C3\u30B1\u30FC\u30B8\u6307\u5B9A\u5B50\u306E\u30EA\u30B9\u30C8\u3067\u3059\u3002\u30D1\u30C3\u30B1\u30FC\u30B8\n\u6307\u5B9A\u5B50\u306F\u3001\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u4FEE\u98FE\u3055\u308C\u305F\u540D\u524D\u3001\u307E\u305F\u306F\u30D1\u30C3\u30B1\u30FC\u30B8\u540D\n\u306E\u63A5\u982D\u8F9E\u306E\u5F8C\u306B.*\u3092\u6307\u5B9A(\u6307\u5B9A\u3057\u305F\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u3059\u3079\u3066\u306E\u30B5\u30D6\u30D1\u30C3\u30B1\u30FC\u30B8\n\u306B\u62E1\u5F35)\u3057\u305F\u3082\u306E\u3067\u3059\u3002\u30D1\u30C3\u30B1\u30FC\u30B8\u6307\u5B9A\u5B50\u306E\u524D\u306B-\u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\n\u6307\u5B9A\u3057\u305F\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u95A2\u3059\u308B\u30C1\u30A7\u30C3\u30AF\u3092\u7121\u52B9\u306B\u3067\u304D\u307E\u3059\u3002
 
 # L10N: do not localize the option names -html4 and -html5
-doclet.HTML_version_not_specified=\u4F7F\u7528\u3059\u308BHTML\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\n\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u73FE\u5728HTML 4.01\u3067\u3059\u304C\u3001\u3053\u308C\u306F\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067HTML5\u306B\n\u5909\u66F4\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u8B66\u544A\u3092\u8868\u793A\u3057\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u306B\u306F\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u30FB\u30B3\u30E1\u30F3\u30C8\n\u3067\u4F7F\u7528\u3055\u308C\u3066\u3044\u3066\u3001\u3053\u306E\u30C9\u30C3\u30AF\u30EC\u30C3\u30C8\u3067-html4\u307E\u305F\u306F-html5\uFF11\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\n\u751F\u6210\u3055\u308C\u308BHTML\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+doclet.HTML_4_specified=-html4\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066HTML\u30D0\u30FC\u30B8\u30E7\u30F3\u306BHTML 4.01\u3092\u6307\u5B9A\u3057\u307E\u3057\u305F\u3002\n\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u73FE\u5728HTML5\u3067\u3001HTML 4.01\u306E\u30B5\u30DD\u30FC\u30C8\u306F\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\n\u524A\u9664\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u8B66\u544A\u3092\u8868\u793A\u3057\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u306B\u306F\u3001\u30B3\u30E1\u30F3\u30C8\u306EHTML\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30C8\u304C\nHTML5\u3067\u6709\u52B9\u3067\u3042\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3001-html4\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+
+# L10N: do not localize the option names --frames
+doclet.Frames_specified=--frames\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u3001\u30D5\u30EC\u30FC\u30E0\u306E\u751F\u6210\u3092\u6307\u5B9A\u3057\u307E\u3057\u305F\u3002\n\u73FE\u5728\u3001\u30D5\u30EC\u30FC\u30E0\u3092\u751F\u6210\u3057\u306A\u3044\u306E\u304C\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u3042\u308A\u3001\u30D5\u30EC\u30FC\u30E0\u306E\n\u30B5\u30DD\u30FC\u30C8\u306F\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u307E\u3059\u3002\n\u3053\u306E\u8B66\u544A\u3092\u8868\u793A\u3057\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u306B\u306F\u3001--frames\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u524A\u9664\u3057\u3001\u30D5\u30EC\u30FC\u30E0\u306E\u4F7F\u7528\u3092\u907F\u3051\u3066\u304F\u3060\u3055\u3044\u3002
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -16,16 +16,6 @@
 doclet.Interface_Hierarchy=\u63A5\u53E3\u5206\u5C42\u7ED3\u6784
 doclet.Enum_Hierarchy=\u679A\u4E3E\u5206\u5C42\u7ED3\u6784
 doclet.Annotation_Type_Hierarchy=\u6CE8\u91CA\u7C7B\u578B\u5206\u5C42\u7ED3\u6784
-doclet.Prev=\u4E0A\u4E00\u4E2A
-doclet.Next=\u4E0B\u4E00\u4E2A
-doclet.Prev_Class=\u4E0A\u4E00\u4E2A\u7C7B
-doclet.Next_Class=\u4E0B\u4E00\u4E2A\u7C7B
-doclet.Prev_Package=\u4E0A\u4E00\u4E2A\u7A0B\u5E8F\u5305
-doclet.Next_Package=\u4E0B\u4E00\u4E2A\u7A0B\u5E8F\u5305
-doclet.Prev_Module=\u4E0A\u4E00\u4E2A\u6A21\u5757
-doclet.Next_Module=\u4E0B\u4E00\u4E2A\u6A21\u5757
-doclet.Prev_Letter=\u4E0A\u4E00\u4E2A\u5B57\u6BCD
-doclet.Next_Letter=\u4E0B\u4E00\u4E2A\u5B57\u6BCD
 doclet.Href_Class_Title={0}\u4E2D\u7684\u7C7B
 doclet.Href_Interface_Title={0}\u4E2D\u7684\u63A5\u53E3
 doclet.Href_Annotation_Title={0}\u4E2D\u7684\u6CE8\u91CA
@@ -100,47 +90,51 @@
 doclet.Description_From_Interface=\u4ECE\u63A5\u53E3\u590D\u5236\u7684\u8BF4\u660E:
 doclet.Description_From_Class=\u4ECE\u7C7B\u590D\u5236\u7684\u8BF4\u660E:
 doclet.No_Non_Deprecated_Classes_To_Document=\u627E\u4E0D\u5230\u53EF\u4EE5\u6587\u6863\u5316\u7684\u672A\u8FC7\u65F6\u7684\u7C7B\u3002
-doclet.Interfaces_Italic=\u63A5\u53E3 (\u659C\u4F53)
+doclet.Interfaces=\u63A5\u53E3
 doclet.Enclosing_Class=\u5C01\u95ED\u7C7B:
 doclet.Enclosing_Interface=\u5C01\u95ED\u63A5\u53E3:
 doclet.Window_Source_title=\u6E90\u4EE3\u7801
 doclet.Window_Help_title=API \u5E2E\u52A9
-doclet.Help_line_1=\u6B64 API \u6587\u6863\u7684\u7EC4\u7EC7\u65B9\u5F0F
-doclet.Help_line_2=\u6B64 API (\u5E94\u7528\u7A0B\u5E8F\u7F16\u7A0B\u63A5\u53E3) \u6587\u6863\u5305\u542B\u5BF9\u5E94\u4E8E\u5BFC\u822A\u680F\u4E2D\u7684\u9879\u76EE\u7684\u9875\u9762, \u5982\u4E0B\u6240\u8FF0\u3002
-doclet.Help_line_3={0} \u9875\u9762\u662F\u6B64 API \u6587\u6863\u7684\u9996\u9875, \u63D0\u4F9B\u4E86\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5217\u8868\u53CA\u5176\u6982\u8981\u3002\u6B64\u9875\u9762\u4E5F\u53EF\u80FD\u5305\u542B\u8FD9\u4E9B\u7A0B\u5E8F\u5305\u7684\u603B\u4F53\u8BF4\u660E\u3002
-doclet.Help_line_4=\u6BCF\u4E2A\u7A0B\u5E8F\u5305\u90FD\u6709\u4E00\u4E2A\u9875\u9762, \u5176\u4E2D\u5305\u542B\u5B83\u7684\u7C7B\u548C\u63A5\u53E3\u7684\u5217\u8868\u53CA\u5176\u6982\u8981\u3002\u6B64\u9875\u9762\u53EF\u4EE5\u5305\u542B\u516D\u4E2A\u7C7B\u522B:
-doclet.Help_line_5=\u7C7B/\u63A5\u53E3
-doclet.Help_line_6=\u6BCF\u4E2A\u7C7B, \u63A5\u53E3, \u5D4C\u5957\u7C7B\u548C\u5D4C\u5957\u63A5\u53E3\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762\u3002\u5176\u4E2D\u6BCF\u4E2A\u9875\u9762\u90FD\u7531\u4E09\u90E8\u5206 (\u7C7B/\u63A5\u53E3\u8BF4\u660E, \u6982\u8981\u8868, \u4EE5\u53CA\u8BE6\u7EC6\u7684\u6210\u5458\u8BF4\u660E) \u7EC4\u6210:
-doclet.Help_line_7=\u7C7B\u7EE7\u627F\u56FE
-doclet.Help_line_8=\u76F4\u63A5\u5B50\u7C7B
-doclet.Help_line_9=\u6240\u6709\u5DF2\u77E5\u5B50\u63A5\u53E3
-doclet.Help_line_10=\u6240\u6709\u5DF2\u77E5\u5B9E\u73B0\u7C7B
-doclet.Help_line_11=\u7C7B/\u63A5\u53E3\u58F0\u660E
-doclet.Help_line_12=\u7C7B/\u63A5\u53E3\u8BF4\u660E
-doclet.Help_line_13=\u6BCF\u4E2A\u6982\u8981\u6761\u76EE\u90FD\u5305\u542B\u8BE5\u9879\u76EE\u7684\u8BE6\u7EC6\u8BF4\u660E\u7684\u7B2C\u4E00\u53E5\u3002\u6982\u8981\u6761\u76EE\u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5217, \u800C\u8BE6\u7EC6\u8BF4\u660E\u5219\u6309\u5176\u5728\u6E90\u4EE3\u7801\u4E2D\u51FA\u73B0\u7684\u987A\u5E8F\u6392\u5217\u3002\u8FD9\u6837\u4FDD\u6301\u4E86\u7A0B\u5E8F\u5458\u6240\u5EFA\u7ACB\u7684\u903B\u8F91\u5206\u7EC4\u3002
-doclet.Help_line_14=\u4F7F\u7528
-doclet.Help_line_15=\u6BCF\u4E2A\u5DF2\u6587\u6863\u5316\u7684\u7A0B\u5E8F\u5305, \u7C7B\u548C\u63A5\u53E3\u90FD\u6709\u5404\u81EA\u7684\u201C\u4F7F\u7528\u201D\u9875\u9762\u3002\u6B64\u9875\u9762\u4ECB\u7ECD\u4E86\u4F7F\u7528\u7ED9\u5B9A\u7C7B\u6216\u7A0B\u5E8F\u5305\u7684\u4EFB\u4F55\u90E8\u5206\u7684\u7A0B\u5E8F\u5305, \u7C7B, \u65B9\u6CD5, \u6784\u9020\u5668\u548C\u5B57\u6BB5\u3002\u5BF9\u4E8E\u7ED9\u5B9A\u7684\u7C7B\u6216\u63A5\u53E3 A, \u5176\u201C\u4F7F\u7528\u201D\u9875\u9762\u5305\u542B A \u7684\u5B50\u7C7B, \u58F0\u660E\u4E3A A \u7684\u5B57\u6BB5, \u8FD4\u56DE A \u7684\u65B9\u6CD5, \u4EE5\u53CA\u5E26\u6709\u7C7B\u578B\u4E3A A \u7684\u53C2\u6570\u7684\u65B9\u6CD5\u548C\u6784\u9020\u5668\u3002\u8BBF\u95EE\u6B64\u9875\u9762\u7684\u65B9\u6CD5\u662F: \u9996\u5148\u8F6C\u81F3\u7A0B\u5E8F\u5305, \u7C7B\u6216\u63A5\u53E3, \u7136\u540E\u5355\u51FB\u5BFC\u822A\u680F\u4E2D\u7684 "\u4F7F\u7528" \u94FE\u63A5\u3002
-doclet.Help_line_16=\u6811 (\u7C7B\u5206\u5C42\u7ED3\u6784)
-doclet.Help_line_17_with_tree_link=\u5BF9\u4E8E\u6240\u6709\u7A0B\u5E8F\u5305, \u6709\u4E00\u4E2A{0}\u9875\u9762, \u4EE5\u53CA\u6BCF\u4E2A\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784\u3002\u6BCF\u4E2A\u5206\u5C42\u7ED3\u6784\u9875\u9762\u90FD\u5305\u542B\u7C7B\u7684\u5217\u8868\u548C\u63A5\u53E3\u7684\u5217\u8868\u3002\u4ECE{1}\u5F00\u59CB, \u6309\u7EE7\u627F\u7ED3\u6784\u5BF9\u7C7B\u8FDB\u884C\u6392\u5217\u3002\u63A5\u53E3\u4E0D\u4ECE{1}\u7EE7\u627F\u3002
-doclet.Help_line_18=\u67E5\u770B\u201C\u6982\u89C8\u201D\u9875\u9762\u65F6, \u5355\u51FB "\u6811" \u5C06\u663E\u793A\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784\u3002
-doclet.Help_line_19=\u67E5\u770B\u7279\u5B9A\u7A0B\u5E8F\u5305, \u7C7B\u6216\u63A5\u53E3\u9875\u9762\u65F6, \u5355\u51FB "\u6811" \u5C06\u4EC5\u663E\u793A\u8BE5\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784\u3002
-doclet.Help_line_20_with_deprecated_api_link={0} \u9875\u9762\u5217\u51FA\u4E86\u6240\u6709\u5DF2\u8FC7\u65F6\u7684 API\u3002\u4E00\u822C\u7531\u4E8E\u8FDB\u884C\u4E86\u6539\u8FDB\u5E76\u4E14\u901A\u5E38\u63D0\u4F9B\u4E86\u66FF\u4EE3\u7684 API, \u6240\u4EE5\u5EFA\u8BAE\u4E0D\u8981\u4F7F\u7528\u5DF2\u8FC7\u65F6\u7684 API\u3002\u5728\u5C06\u6765\u7684\u5B9E\u73B0\u8FC7\u7A0B\u4E2D, \u53EF\u80FD\u4F1A\u5220\u9664\u5DF2\u8FC7\u65F6\u7684 API\u3002
-doclet.Help_line_21=\u7D22\u5F15
-doclet.Help_line_22={0} \u5305\u542B\u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5217\u7684\u6240\u6709\u7C7B, \u63A5\u53E3, \u6784\u9020\u5668, \u65B9\u6CD5\u548C\u5B57\u6BB5\u7684\u5217\u8868\u3002
-doclet.Help_line_23=\u4E0A\u4E00\u4E2A/\u4E0B\u4E00\u4E2A
-doclet.Help_line_24=\u8FD9\u4E9B\u94FE\u63A5\u4F7F\u60A8\u53EF\u4EE5\u8F6C\u81F3\u4E0B\u4E00\u4E2A\u6216\u4E0A\u4E00\u4E2A\u7C7B, \u63A5\u53E3, \u7A0B\u5E8F\u5305\u6216\u76F8\u5173\u9875\u9762\u3002
-doclet.Help_line_25=\u6846\u67B6/\u65E0\u6846\u67B6
-doclet.Help_line_26=\u8FD9\u4E9B\u94FE\u63A5\u7528\u4E8E\u663E\u793A\u548C\u9690\u85CF HTML \u6846\u67B6\u3002\u6240\u6709\u9875\u9762\u5747\u5177\u6709\u6709\u6846\u67B6\u548C\u65E0\u6846\u67B6\u4E24\u79CD\u663E\u793A\u65B9\u5F0F\u3002
-doclet.Help_line_27={0}\u94FE\u63A5\u663E\u793A\u6240\u6709\u7C7B\u548C\u63A5\u53E3 (\u9664\u4E86\u975E\u9759\u6001\u5D4C\u5957\u7C7B\u578B)\u3002
-doclet.Help_line_28=\u6BCF\u4E2A\u53EF\u5E8F\u5217\u5316\u6216\u53EF\u5916\u90E8\u5316\u7684\u7C7B\u90FD\u6709\u5176\u5E8F\u5217\u5316\u5B57\u6BB5\u548C\u65B9\u6CD5\u7684\u8BF4\u660E\u3002\u6B64\u4FE1\u606F\u5BF9\u91CD\u65B0\u5B9E\u73B0\u8005\u6709\u7528, \u800C\u5BF9\u4F7F\u7528 API \u7684\u5F00\u53D1\u8005\u5219\u6CA1\u6709\u4EC0\u4E48\u7528\u5904\u3002\u5C3D\u7BA1\u5BFC\u822A\u680F\u4E2D\u6CA1\u6709\u94FE\u63A5, \u4F46\u60A8\u53EF\u4EE5\u901A\u8FC7\u4E0B\u5217\u65B9\u5F0F\u83B7\u53D6\u6B64\u4FE1\u606F: \u8F6C\u81F3\u4EFB\u4F55\u5E8F\u5217\u5316\u7C7B, \u7136\u540E\u5355\u51FB\u7C7B\u8BF4\u660E\u7684 "\u53E6\u8BF7\u53C2\u9605" \u90E8\u5206\u4E2D\u7684 "\u5E8F\u5217\u5316\u8868\u683C"\u3002
-doclet.Help_line_29={0}\u9875\u9762\u5217\u51FA\u4E86\u9759\u6001\u6700\u7EC8\u5B57\u6BB5\u53CA\u5176\u503C\u3002
-doclet.Help_line_30=\u6B64\u5E2E\u52A9\u6587\u4EF6\u9002\u7528\u4E8E\u4F7F\u7528\u6807\u51C6 doclet \u751F\u6210\u7684 API \u6587\u6863\u3002
-doclet.Help_enum_line_1=\u6BCF\u4E2A\u679A\u4E3E\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762, \u5176\u4E2D\u5305\u542B\u4EE5\u4E0B\u90E8\u5206:
-doclet.Help_enum_line_2=\u679A\u4E3E\u58F0\u660E
-doclet.Help_enum_line_3=\u679A\u4E3E\u8BF4\u660E
-doclet.Help_annotation_type_line_1=\u6BCF\u4E2A\u6CE8\u91CA\u7C7B\u578B\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762, \u5176\u4E2D\u5305\u542B\u4EE5\u4E0B\u90E8\u5206:
-doclet.Help_annotation_type_line_2=\u6CE8\u91CA\u7C7B\u578B\u58F0\u660E
-doclet.Help_annotation_type_line_3=\u6CE8\u91CA\u7C7B\u578B\u8BF4\u660E
+
+doclet.help.main_heading=\u6B64 API \u6587\u6863\u7684\u7EC4\u7EC7\u65B9\u5F0F
+doclet.help.intro=\u6B64 API (\u5E94\u7528\u7A0B\u5E8F\u7F16\u7A0B\u63A5\u53E3) \u6587\u6863\u5305\u542B\u5BF9\u5E94\u4E8E\u5BFC\u822A\u680F\u4E2D\u7684\u9879\u76EE\u7684\u9875\u9762, \u5982\u4E0B\u6240\u8FF0\u3002
+doclet.help.overview.modules.body=The {0} page is the front page of this API document and provides a list of all modules with a summary for each.  This page can also contain an overall description of the set of modules.
+doclet.help.overview.packages.body={0} \u9875\u9762\u662F\u6B64 API \u6587\u6863\u7684\u9996\u9875, \u63D0\u4F9B\u4E86\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5217\u8868\u53CA\u5176\u6982\u8981\u3002\u6B64\u9875\u9762\u4E5F\u53EF\u80FD\u5305\u542B\u8FD9\u4E9B\u7A0B\u5E8F\u5305\u7684\u603B\u4F53\u8BF4\u660E\u3002
+doclet.help.package.intro=Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:
+doclet.help.module.intro=Each module has a page that contains a list of its packages, dependencies on other modules, and services, with a summary for each. These page may contain three categories:
+doclet.help.class_interface.head=Class or Interface
+doclet.help.class_interface.intro=\u6BCF\u4E2A\u7C7B, \u63A5\u53E3, \u5D4C\u5957\u7C7B\u548C\u5D4C\u5957\u63A5\u53E3\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762\u3002\u5176\u4E2D\u6BCF\u4E2A\u9875\u9762\u90FD\u7531\u4E09\u90E8\u5206 (\u7C7B/\u63A5\u53E3\u8BF4\u660E, \u6982\u8981\u8868, \u4EE5\u53CA\u8BE6\u7EC6\u7684\u6210\u5458\u8BF4\u660E) \u7EC4\u6210:
+doclet.help.class_interface.inheritance_diagram=Class Inheritance Diagram
+doclet.help.class_interface.subclasses=\u76F4\u63A5\u5B50\u7C7B
+doclet.help.class_interface.subinterfaces=\u6240\u6709\u5DF2\u77E5\u5B50\u63A5\u53E3
+doclet.help.class_interface.implementations=\u6240\u6709\u5DF2\u77E5\u5B9E\u73B0\u7C7B
+doclet.help.class_interface.declaration=Class or Interface Declaration
+doclet.help.class_interface.description=Class or Interface Description
+doclet.help.class_interface.summary=\u6BCF\u4E2A\u6982\u8981\u6761\u76EE\u90FD\u5305\u542B\u8BE5\u9879\u76EE\u7684\u8BE6\u7EC6\u8BF4\u660E\u7684\u7B2C\u4E00\u53E5\u3002\u6982\u8981\u6761\u76EE\u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5217, \u800C\u8BE6\u7EC6\u8BF4\u660E\u5219\u6309\u5176\u5728\u6E90\u4EE3\u7801\u4E2D\u51FA\u73B0\u7684\u987A\u5E8F\u6392\u5217\u3002\u8FD9\u6837\u4FDD\u6301\u4E86\u7A0B\u5E8F\u5458\u6240\u5EFA\u7ACB\u7684\u903B\u8F91\u5206\u7EC4\u3002
+doclet.help.use.head=\u4F7F\u7528
+doclet.help.use.body=Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+doclet.help.tree.head=\u6811 (\u7C7B\u5206\u5C42\u7ED3\u6784)
+doclet.help.tree.intro=There is a {0} page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with {1}. Interfaces do not inherit from {1}.
+doclet.help.tree.overview=\u67E5\u770B\u201C\u6982\u89C8\u201D\u9875\u9762\u65F6, \u5355\u51FB "\u6811" \u5C06\u663E\u793A\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784\u3002
+doclet.help.tree.package=When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.
+doclet.help.deprecated.body={0} \u9875\u9762\u5217\u51FA\u4E86\u6240\u6709\u5DF2\u8FC7\u65F6\u7684 API\u3002\u4E00\u822C\u7531\u4E8E\u8FDB\u884C\u4E86\u6539\u8FDB\u5E76\u4E14\u901A\u5E38\u63D0\u4F9B\u4E86\u66FF\u4EE3\u7684 API, \u6240\u4EE5\u5EFA\u8BAE\u4E0D\u8981\u4F7F\u7528\u5DF2\u8FC7\u65F6\u7684 API\u3002\u5728\u5C06\u6765\u7684\u5B9E\u73B0\u8FC7\u7A0B\u4E2D, \u53EF\u80FD\u4F1A\u5220\u9664\u5DF2\u8FC7\u65F6\u7684 API\u3002
+doclet.help.index.head=\u7D22\u5F15
+doclet.help.index.body=The {0} contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.
+doclet.help.frames.head=\u6846\u67B6/\u65E0\u6846\u67B6
+doclet.help.frames.body=\u8FD9\u4E9B\u94FE\u63A5\u7528\u4E8E\u663E\u793A\u548C\u9690\u85CF HTML \u6846\u67B6\u3002\u6240\u6709\u9875\u9762\u5747\u5177\u6709\u6709\u6846\u67B6\u548C\u65E0\u6846\u67B6\u4E24\u79CD\u663E\u793A\u65B9\u5F0F\u3002
+doclet.help.all_classes.body={0}\u94FE\u63A5\u663E\u793A\u6240\u6709\u7C7B\u548C\u63A5\u53E3 (\u9664\u4E86\u975E\u9759\u6001\u5D4C\u5957\u7C7B\u578B)\u3002
+doclet.help.serial_form.body=\u6BCF\u4E2A\u53EF\u5E8F\u5217\u5316\u6216\u53EF\u5916\u90E8\u5316\u7684\u7C7B\u90FD\u6709\u5176\u5E8F\u5217\u5316\u5B57\u6BB5\u548C\u65B9\u6CD5\u7684\u8BF4\u660E\u3002\u6B64\u4FE1\u606F\u5BF9\u91CD\u65B0\u5B9E\u73B0\u8005\u6709\u7528, \u800C\u5BF9\u4F7F\u7528 API \u7684\u5F00\u53D1\u8005\u5219\u6CA1\u6709\u4EC0\u4E48\u7528\u5904\u3002\u5C3D\u7BA1\u5BFC\u822A\u680F\u4E2D\u6CA1\u6709\u94FE\u63A5, \u4F46\u60A8\u53EF\u4EE5\u901A\u8FC7\u4E0B\u5217\u65B9\u5F0F\u83B7\u53D6\u6B64\u4FE1\u606F: \u8F6C\u81F3\u4EFB\u4F55\u5E8F\u5217\u5316\u7C7B, \u7136\u540E\u5355\u51FB\u7C7B\u8BF4\u660E\u7684 "\u53E6\u8BF7\u53C2\u9605" \u90E8\u5206\u4E2D\u7684 "\u5E8F\u5217\u5316\u8868\u683C"\u3002
+doclet.help.constants.body={0}\u9875\u9762\u5217\u51FA\u4E86\u9759\u6001\u6700\u7EC8\u5B57\u6BB5\u53CA\u5176\u503C\u3002
+doclet.help.footnote=This help file applies to API documentation generated by the standard doclet.
+doclet.help.enum.intro=\u6BCF\u4E2A\u679A\u4E3E\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762, \u5176\u4E2D\u5305\u542B\u4EE5\u4E0B\u90E8\u5206:
+doclet.help.enum.declaration=\u679A\u4E3E\u58F0\u660E
+doclet.help.enum.definition=Enum Description
+doclet.help.annotation_type.intro=\u6BCF\u4E2A\u6CE8\u91CA\u7C7B\u578B\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762, \u5176\u4E2D\u5305\u542B\u4EE5\u4E0B\u90E8\u5206:
+doclet.help.annotation_type.declaration=Annotation Type Declaration
+doclet.help.annotation_type.description=Annotation Type Description
+doclet.help.search.head=Search
+doclet.help.search.body=You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".
+
 doclet.ClassUse_Packages.that.use.0=\u4F7F\u7528{0}\u7684\u7A0B\u5E8F\u5305
 doclet.ClassUse_Uses.of.0.in.1={1}\u4E2D{0}\u7684\u4F7F\u7528
 doclet.ClassUse_Classes.in.0.used.by.1={1}\u4F7F\u7528\u7684{0}\u4E2D\u7684\u7C7B
@@ -240,6 +234,8 @@
 
 doclet.usage.nodeprecatedlist.description=\u4E0D\u751F\u6210\u5DF2\u8FC7\u65F6\u7684\u5217\u8868
 
+doclet.usage.no-module-directories.description=\u4E0D\u5C06\u6A21\u5757\u6587\u6863\u7684\u6587\u4EF6\u5206\u7EC4\u5230\n\u6A21\u5757\u7279\u5B9A\u7684\u76EE\u5F55\u4E2D
+
 doclet.usage.notree.description=\u4E0D\u751F\u6210\u7C7B\u5206\u5C42\u7ED3\u6784
 
 doclet.usage.noindex.description=\u4E0D\u751F\u6210\u7D22\u5F15
@@ -262,7 +258,7 @@
 doclet.usage.charset.parameters=<charset>
 doclet.usage.charset.description=\u7528\u4E8E\u8DE8\u5E73\u53F0\u67E5\u770B\u751F\u6210\u7684\u6587\u6863\u7684\u5B57\u7B26\u96C6
 
-doclet.usage.javafx.description=\u542F\u7528 javafx \u529F\u80FD
+doclet.usage.javafx.description=\u542F\u7528 JavaFX \u529F\u80FD
 
 doclet.usage.helpfile.parameters=<file>
 doclet.usage.helpfile.description=\u5305\u542B\u5E2E\u52A9\u94FE\u63A5\u6240\u94FE\u63A5\u5230\u7684\u6587\u4EF6
@@ -280,9 +276,9 @@
 doclet.usage.docencoding.parameters=<name>
 doclet.usage.docencoding.description=\u6307\u5B9A\u8F93\u51FA\u7684\u5B57\u7B26\u7F16\u7801
 
-doclet.usage.frames.description=\u5141\u8BB8\u5728\u751F\u6210\u7684\u8F93\u51FA\u4E2D\u4F7F\u7528\u5E27 (\u9ED8\u8BA4\u503C)
+doclet.usage.frames.description=\u5141\u8BB8\u5728\u751F\u6210\u7684\u8F93\u51FA\u4E2D\u4F7F\u7528\u5E27
 
-doclet.usage.no-frames.description=\u7981\u6B62\u5728\u751F\u6210\u7684\u8F93\u51FA\u4E2D\u4F7F\u7528\u5E27
+doclet.usage.no-frames.description=\u7981\u6B62\u5728\u751F\u6210\u7684\u8F93\u51FA\u4E2D\u4F7F\u7528\u5E27\uFF08\u9ED8\u8BA4\u503C\uFF09
 
 doclet.usage.override-methods.parameters=(detail|summary)
 
@@ -303,4 +299,7 @@
 doclet.usage.xdoclint-package.description=\u5728\u7279\u5B9A\u7684\u7A0B\u5E8F\u5305\u4E2D\u542F\u7528\u6216\u7981\u7528\u68C0\u67E5\u3002<\u7A0B\u5E8F\u5305>\n\u662F\u9017\u53F7\u5206\u9694\u7684\u7A0B\u5E8F\u5305\u8BF4\u660E\u7B26\u5217\u8868\u3002\u7A0B\u5E8F\u5305\n\u8BF4\u660E\u7B26\u662F\u7A0B\u5E8F\u5305\u7684\u9650\u5B9A\u540D\u79F0\u6216\u7A0B\u5E8F\u5305\u540D\u79F0\n\u524D\u7F00\u540E\u8DDF .*, \u5B83\u6269\u5C55\u5230\u7ED9\u5B9A\u7A0B\u5E8F\u5305\u7684\u6240\u6709\n\u5B50\u7A0B\u5E8F\u5305\u3002\u5728\u7A0B\u5E8F\u5305\u8BF4\u660E\u7B26\u524D\u9762\u52A0\u4E0A - \u53EF\u4EE5\n\u4E3A\u6307\u5B9A\u7A0B\u5E8F\u5305\u7981\u7528\u68C0\u67E5\u3002
 
 # L10N: do not localize the option names -html4 and -html5
-doclet.HTML_version_not_specified=\u672A\u6307\u5B9A\u8981\u4F7F\u7528\u7684 HTML \u7248\u672C\u3002\n\u9ED8\u8BA4\u503C\u5F53\u524D\u4E3A HTML 4.01\uFF0C\u4F46\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\n\u5C06\u66F4\u6539\u4E3A HTML5\u3002\u8981\u9690\u85CF\u6B64\u8B66\u544A\uFF0C\u8BF7\u4F7F\u7528 -html4 \n\u6216 -html5 \u9009\u9879\uFF0C\u6307\u5B9A\u8981\u7531\u6B64 doclet \u751F\u6210\u7684\u3001\n\u5728\u6587\u6863\u6CE8\u91CA\u4E2D\u4F7F\u7528\u7684 HTML \u7248\u672C\u3002
+doclet.HTML_4_specified=\u60A8\u5DF2\u4F7F\u7528 -html4 \u9009\u9879\u5C06 HTML \u7248\u672C\u6307\u5B9A\u4E3A HTML 4.01\u3002\n\u9ED8\u8BA4\u503C\u5F53\u524D\u4E3A HTML5\uFF0C\u672A\u6765\u7684\u53D1\u884C\u7248\u4E2D\u5C06\u5220\u9664\u5BF9 \nHTML 4.01 \u7684\u652F\u6301\u3002\u8981\u9690\u85CF\u6B64\u8B66\u544A\uFF0C\u8BF7\u786E\u4FDD\u60A8\u7684\u6CE8\u91CA\u4E2D\u4F7F\u7528\u7684\u4EFB\u4F55 HTML \u7ED3\u6784\n\u5728 HTML5 \u4E2D\u5747\u6709\u6548\u5E76\u5220\u9664 -html4 \u9009\u9879\u3002
+
+# L10N: do not localize the option names --frames
+doclet.Frames_specified=\u60A8\u5DF2\u6307\u5B9A\u901A\u8FC7\u4F7F\u7528 --frames \u9009\u9879\u751F\u6210\u5E27\u3002\n\u9ED8\u8BA4\u8BBE\u7F6E\u5F53\u524D\u4E3A\u4E0D\u751F\u6210\u5E27\uFF0C\u5BF9\u5E27\u7684\u652F\u6301\n\u5C06\u5728\u672A\u6765\u7684\u53D1\u884C\u7248\u4E2D\u5220\u9664\u3002\n\u8981\u9690\u85CF\u6B64\u8B66\u544A\uFF0C\u8BF7\u5220\u9664 --frames \u9009\u9879\u5E76\u907F\u514D\u4F7F\u7528\u5E27\u3002
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -223,7 +223,6 @@
 doclet.Annotation_Type_Required_Member=Required Element
 doclet.Annotation_Type_Member=Annotation Type Element
 doclet.Enum_Constant=Enum Constant
-doclet.Class=Class
 doclet.Description=Description
 doclet.ConstantField=Constant Field
 doclet.Value=Value
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -66,6 +66,7 @@
 doclet.See_Also=\u95A2\u9023\u9805\u76EE:
 doclet.See=\u53C2\u7167\u5148:
 doclet.SerialData=\u30B7\u30EA\u30A2\u30EB\u30FB\u30C7\u30FC\u30BF:
+doclet.Services=\u30B5\u30FC\u30D3\u30B9
 doclet.Since=\u5C0E\u5165\u3055\u308C\u305F\u30D0\u30FC\u30B8\u30E7\u30F3:
 doclet.Throws=\u4F8B\u5916:
 doclet.Version=\u30D0\u30FC\u30B8\u30E7\u30F3:
@@ -108,7 +109,6 @@
 doclet.Exceptions=\u4F8B\u5916
 doclet.Errors=\u30A8\u30E9\u30FC
 doclet.Classes=\u30AF\u30E9\u30B9
-doclet.Packages=\u30D1\u30C3\u30B1\u30FC\u30B8
 doclet.packages=\u30D1\u30C3\u30B1\u30FC\u30B8
 doclet.modules=\u30E2\u30B8\u30E5\u30FC\u30EB
 doclet.types=\u30BF\u30A4\u30D7
@@ -163,7 +163,6 @@
 doclet.Constructor_Detail=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u8A73\u7D30
 doclet.Deprecated=\u63A8\u5968\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
 doclet.DeprecatedForRemoval=\u975E\u63A8\u5968\u3001\u524A\u9664\u4E88\u5B9A: \u3053\u306EAPI\u8981\u7D20\u306F\u5C06\u6765\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u524A\u9664\u4E88\u5B9A\u3067\u3059\u3002
-doclet.Hidden=\u975E\u8868\u793A
 doclet.Groupname_already_used=-group\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u304A\u3044\u3066\u3001\u3059\u3067\u306B\u30B0\u30EB\u30FC\u30D7\u540D\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0}
 doclet.value_tag_invalid_reference={0}(@value\u30BF\u30B0\u306B\u3088\u308A\u53C2\u7167\u3055\u308C\u3066\u3044\u308B)\u306F\u4E0D\u660E\u306A\u53C2\u7167\u3067\u3059\u3002
 doclet.value_tag_invalid_constant=@value\u30BF\u30B0({0}\u3092\u53C2\u7167\u3057\u3066\u3044\u308B)\u306F\u5B9A\u6570\u5185\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -66,6 +66,7 @@
 doclet.See_Also=\u53E6\u8BF7\u53C2\u9605:
 doclet.See=\u8BF7\u53C2\u9605:
 doclet.SerialData=\u5E8F\u5217\u6570\u636E:
+doclet.Services=\u670D\u52A1
 doclet.Since=\u4ECE\u4EE5\u4E0B\u7248\u672C\u5F00\u59CB:
 doclet.Throws=\u629B\u51FA:
 doclet.Version=\u7248\u672C:
@@ -108,7 +109,6 @@
 doclet.Exceptions=\u5F02\u5E38\u9519\u8BEF
 doclet.Errors=\u9519\u8BEF
 doclet.Classes=\u7C7B
-doclet.Packages=\u7A0B\u5E8F\u5305
 doclet.packages=\u7A0B\u5E8F\u5305
 doclet.modules=\u6A21\u5757
 doclet.types=\u7C7B\u578B
@@ -163,7 +163,6 @@
 doclet.Constructor_Detail=\u6784\u9020\u5668\u8BE6\u7EC6\u8D44\u6599
 doclet.Deprecated=\u5DF2\u8FC7\u65F6\u3002
 doclet.DeprecatedForRemoval=\u5DF2\u8FC7\u65F6, \u5F85\u5220\u9664: \u6B64 API \u5143\u7D20\u5C06\u4ECE\u4EE5\u540E\u7684\u7248\u672C\u4E2D\u5220\u9664\u3002
-doclet.Hidden=\u9690\u85CF
 doclet.Groupname_already_used=\u5728 -group \u9009\u9879\u4E2D, groupname \u5DF2\u4F7F\u7528: {0}
 doclet.value_tag_invalid_reference={0} (\u7531 @value \u6807\u8BB0\u5F15\u7528) \u4E3A\u672A\u77E5\u5F15\u7528\u3002
 doclet.value_tag_invalid_constant=@value \u6807\u8BB0 (\u5F15\u7528{0}) \u53EA\u80FD\u5728\u5E38\u91CF\u4E2D\u4F7F\u7528\u3002
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1016,9 +1016,9 @@
     }
 
     /**
-     * Return true if this class is linkable and false if we can't link to the
-     * desired class.
-     * <br>
+     * Returns true if this class is linkable and false if we can't link to it.
+     *
+     * <p>
      * <b>NOTE:</b>  You can only link to external classes if they are public or
      * protected.
      *
@@ -1034,6 +1034,43 @@
     }
 
     /**
+     * Returns true if an element is linkable in the context of a given type element.
+     *
+     * If the element is a type element, it delegates to {@link #isLinkable(TypeElement)}.
+     * Otherwise, the element is linkable if any of the following are true:
+     * <ul>
+     * <li>it is "included" (see {@link jdk.javadoc.doclet})
+     * <li>it is inherited from an undocumented supertype
+     * <li>it is a public or protected member of an external API
+     * </ul>
+     *
+     * @param typeElem the type element
+     * @param elem the element
+     * @return whether or not the element is linkable
+     */
+    public boolean isLinkable(TypeElement typeElem, Element elem) {
+        if (isTypeElement(elem)) {
+            return isLinkable((TypeElement) elem); // defer to existing behavior
+        }
+
+        if (isIncluded(elem)) {
+            return true;
+        }
+
+        // Allow for the behavior that members of undocumented supertypes
+        // may be included in documented types
+        TypeElement enclElem = getEnclosingTypeElement(elem);
+        if (typeElem != enclElem && isSubclassOf(typeElem, enclElem)) {
+            return true;
+        }
+
+        // Allow for external members
+        return isLinkable(typeElem)
+                    && configuration.extern.isExternal(typeElem)
+                    && (isPublic(elem) || isProtected(elem));
+    }
+
+    /**
      * Return this type as a {@code TypeElement} if it represents a class
      * interface or annotation.  Array dimensions are ignored.
      * If this type {@code ParameterizedType} or {@code WildcardType}, return
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -105,6 +105,8 @@
 main.opt.source.arg=<release>
 main.opt.source.desc=\u6307\u5B9A\u3055\u308C\u305F\u30EA\u30EA\u30FC\u30B9\u3068\u30BD\u30FC\u30B9\u306E\u4E92\u63DB\u6027\u3092\u4FDD\u3064
 
+main.opt.enable.preview.desc=\u30D7\u30EC\u30D3\u30E5\u30FC\u8A00\u8A9E\u6A5F\u80FD\u3092\u6709\u52B9\u306B\u3059\u308B\u3002-source\u307E\u305F\u306F--release\u3068\u3068\u3082\u306B\n\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002
+
 main.opt.extdirs.arg=<dirlist>
 main.opt.extdirs.desc=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u62E1\u5F35\u6A5F\u80FD\u306E\u4F4D\u7F6E\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B
 
@@ -174,7 +176,6 @@
 main.doclet_no_classloader_found={0}\u3092\u30ED\u30FC\u30C9\u3059\u308B\u30AF\u30E9\u30B9\u30ED\u30FC\u30C0\u30FC\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
 main.could_not_instantiate_class=\u30AF\u30E9\u30B9{0}\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
 main.doclet_class_not_found=doclet\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
-main.illegal_locale_name=\u30ED\u30B1\u30FC\u30EB{0}\u304C\u7121\u52B9\u3067\u3059
 main.malformed_locale_name=\u30ED\u30B1\u30FC\u30EB\u540D{0}\u306E\u66F8\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093
 main.file_not_found=\u30D5\u30A1\u30A4\u30EB"{0}"\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
 main.illegal_class_name=\u30AF\u30E9\u30B9\u540D\u304C\u4E0D\u6B63\u3067\u3059: "{0}"
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -105,6 +105,8 @@
 main.opt.source.arg=<\u53D1\u884C\u7248>
 main.opt.source.desc=\u63D0\u4F9B\u4E0E\u6307\u5B9A\u53D1\u884C\u7248\u7684\u6E90\u517C\u5BB9\u6027
 
+main.opt.enable.preview.desc=\u542F\u7528\u9884\u89C8\u8BED\u8A00\u529F\u80FD\u3002\u4E0E -source \u6216 --release \n\u4E00\u8D77\u4F7F\u7528\u3002
+
 main.opt.extdirs.arg=<\u76EE\u5F55\u5217\u8868>
 main.opt.extdirs.desc=\u8986\u76D6\u6240\u5B89\u88C5\u6269\u5C55\u7684\u4F4D\u7F6E
 
@@ -174,7 +176,6 @@
 main.doclet_no_classloader_found=\u65E0\u6CD5\u83B7\u53D6\u7C7B\u52A0\u8F7D\u5668\u6765\u52A0\u8F7D {0}
 main.could_not_instantiate_class=\u65E0\u6CD5\u5B9E\u4F8B\u5316\u7C7B {0}
 main.doclet_class_not_found=\u627E\u4E0D\u5230 doclet \u7C7B{0}
-main.illegal_locale_name=\u8BED\u8A00\u73AF\u5883\u4E0D\u53EF\u7528: {0}
 main.malformed_locale_name=\u683C\u5F0F\u9519\u8BEF\u7684\u8BED\u8A00\u73AF\u5883\u540D\u79F0: {0}
 main.file_not_found=\u627E\u4E0D\u5230\u6587\u4EF6: "{0}"
 main.illegal_class_name=\u975E\u6CD5\u7C7B\u540D: "{0}"
--- a/src/jdk.jdeps/share/classes/com/sun/tools/javap/resources/javap_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/javap/resources/javap_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -22,19 +22,19 @@
 err.cant.find.module=\u30E2\u30B8\u30E5\u30FC\u30EB{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
 err.cant.find.module.ex=\u30E2\u30B8\u30E5\u30FC\u30EB{0}\u306E\u691C\u7D22\u4E2D\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {1}
 
-main.usage.summary=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <classes>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30EA\u30B9\u30C8\u306B\u3064\u3044\u3066\u306F\u3001-help\u3092\u4F7F\u7528\u3057\u307E\u3059
+main.usage.summary=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <classes>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30EA\u30B9\u30C8\u306B\u3064\u3044\u3066\u306F\u3001--help\u3092\u4F7F\u7528\u3057\u307E\u3059
 
 warn.prefix=\u8B66\u544A:
 warn.unexpected.class=\u30D5\u30A1\u30A4\u30EB{0}\u306B\u30AF\u30E9\u30B9{1}\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093
 
 note.prefix=\u6CE8:
 
-main.usage.summary=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <classes>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30EA\u30B9\u30C8\u306B\u3064\u3044\u3066\u306F\u3001-help\u3092\u4F7F\u7528\u3057\u307E\u3059
+main.usage.summary=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <classes>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30EA\u30B9\u30C8\u306B\u3064\u3044\u3066\u306F\u3001--help\u3092\u4F7F\u7528\u3057\u307E\u3059
 
 main.usage=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <classes>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059:
 
 
-main.opt.help=\  -help  --help  -?                \u3053\u306E\u4F7F\u7528\u65B9\u6CD5\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B
+main.opt.help=\  -? -h --help -help               \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059
 
 main.opt.version=\  -version                         \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831
 
--- a/src/jdk.jdeps/share/classes/com/sun/tools/javap/resources/javap_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/javap/resources/javap_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -22,19 +22,19 @@
 err.cant.find.module=\u627E\u4E0D\u5230\u6A21\u5757 {0}
 err.cant.find.module.ex=\u67E5\u627E\u6A21\u5757 {0} \u65F6\u51FA\u73B0\u95EE\u9898: {1}
 
-main.usage.summary=\u7528\u6CD5: {0} <options> <classes>\n\u4F7F\u7528 -help \u5217\u51FA\u53EF\u80FD\u7684\u9009\u9879
+main.usage.summary=\u7528\u6CD5\uFF1A{0} <\u9009\u9879> <\u7C7B>\n\u4F7F\u7528 --help \u5217\u51FA\u53EF\u80FD\u7684\u9009\u9879
 
 warn.prefix=\u8B66\u544A:
 warn.unexpected.class=\u6587\u4EF6 {0} \u4E0D\u5305\u542B\u7C7B {1}
 
 note.prefix=\u6CE8:
 
-main.usage.summary=\u7528\u6CD5: {0} <options> <classes>\n\u4F7F\u7528 -help \u5217\u51FA\u53EF\u80FD\u7684\u9009\u9879
+main.usage.summary=\u7528\u6CD5\uFF1A{0} <\u9009\u9879> <\u7C7B>\n\u4F7F\u7528 --help \u5217\u51FA\u53EF\u80FD\u7684\u9009\u9879
 
 main.usage=\u7528\u6CD5: {0} <options> <classes>\n\u5176\u4E2D, \u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC:
 
 
-main.opt.help=\  -help  --help  -?                \u8F93\u51FA\u6B64\u7528\u6CD5\u6D88\u606F
+main.opt.help=\  -? -h --help -help               \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F
 
 main.opt.version=\  -version                         \u7248\u672C\u4FE1\u606F
 
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeprscan/resources/jdeprscan_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeprscan/resources/jdeprscan_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,6 +1,6 @@
-main.usage=\u4F7F\u7528\u65B9\u6CD5: jdeprscan [options] '{dir|jar|class}' ...\n\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n       --class-path PATH\n       --for-removal\n       --full-version\n  -h   --help\n  -l   --list\n       --release 6|7|8|9|10\n  -v   --verbose\n       --version
+main.usage=\u4F7F\u7528\u65B9\u6CD5: jdeprscan [options] ''{dir|jar|class}'' ...\n\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n        --class-path PATH\n        --for-removal\n        --full-version\n  -? -h --help\n  -l    --list\n        --release {0}\n  -v    --verbose\n        --version
 
-main.help=\u975E\u63A8\u5968API\u306E\u4F7F\u7528\u306B\u3064\u3044\u3066\u5404\u5F15\u6570\u3092\u30B9\u30AD\u30E3\u30F3\u3057\u307E\u3059\u3002\u5F15\u6570\u306B\u306F\u3001\n\u30D1\u30C3\u30B1\u30FC\u30B8\u968E\u5C64\u306E\u30EB\u30FC\u30C8\u3092\u6307\u5B9A\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u30D5\u30A1\u30A4\u30EB\u3001\n\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30AF\u30E9\u30B9\u540D\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u30AF\u30E9\u30B9\u540D\u306F\u3001\n\u5B8C\u5168\u4FEE\u98FE\u30AF\u30E9\u30B9\u540D\u3092\u4F7F\u7528\u3057\u3066\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u30CD\u30B9\u30C8\u3055\u308C\u305F\n\u30AF\u30E9\u30B9\u306F$\u3067\u533A\u5207\u308A\u307E\u3059\u3002\u4F8B:\n\n    java.lang.Thread$State\n\n--class-path\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u4F9D\u5B58\u3059\u308B\u30AF\u30E9\u30B9\u306E\u89E3\u6C7A\u306E\u305F\u3081\u306E\n\u691C\u7D22\u30D1\u30B9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\n--for-removal\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u30B9\u30AD\u30E3\u30F3\u3068\u30EA\u30B9\u30C8\u5316\u3092\u524A\u9664\u4E88\u5B9A\u3067\u975E\u63A8\u5968\u306EAPI\u306B\n\u9650\u5B9A\u3057\u307E\u3059\u3002\u30EA\u30EA\u30FC\u30B9\u5024\u304C6\u30017\u307E\u305F\u306F8\u306E\u5834\u5408\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\n--full-version\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u30C4\u30FC\u30EB\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u6587\u5B57\u5217\u306E\u5168\u4F53\u3092\u51FA\u529B\u3057\u307E\u3059\u3002\n\n--help\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u5168\u4F53\u3092\u51FA\u529B\u3057\u307E\u3059\u3002\n\n--list (-l)\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u63A8\u5968API\u30BB\u30C3\u30C8\u3092\u51FA\u529B\u3057\u307E\u3059\u3002\u30B9\u30AD\u30E3\u30F3\u306F\u884C\u308F\u308C\u306A\u3044\n\u305F\u3081\u3001\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u307E\u305F\u306F\u30AF\u30E9\u30B9\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n\n--release\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u30B9\u30AD\u30E3\u30F3\u3059\u308B\u975E\u63A8\u5968API\u306E\u30BB\u30C3\u30C8\u3092\u63D0\u4F9B\u3059\u308BJava SE\n\u30EA\u30EA\u30FC\u30B9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\n--verbose (-v)\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001\u51E6\u7406\u4E2D\u306B\u8FFD\u52A0\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3067\u304D\u307E\u3059\u3002\n\n--version\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u7C21\u7565\u5316\u3055\u308C\u305F\u30C4\u30FC\u30EB\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u6587\u5B57\u5217\u3092\u51FA\u529B\u3057\u307E\u3059\u3002
+main.help=\u975E\u63A8\u5968API\u306E\u4F7F\u7528\u306B\u3064\u3044\u3066\u5404\u5F15\u6570\u3092\u30B9\u30AD\u30E3\u30F3\u3057\u307E\u3059\u3002\u5F15\u6570\u306B\u306F\u3001\n\u30D1\u30C3\u30B1\u30FC\u30B8\u968E\u5C64\u306E\u30EB\u30FC\u30C8\u3092\u6307\u5B9A\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u30D5\u30A1\u30A4\u30EB\u3001\n\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30AF\u30E9\u30B9\u540D\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u30AF\u30E9\u30B9\u540D\u306F\u3001\n\u5B8C\u5168\u4FEE\u98FE\u30AF\u30E9\u30B9\u540D\u3092\u4F7F\u7528\u3057\u3066\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u30CD\u30B9\u30C8\u3055\u308C\u305F\n\u30AF\u30E9\u30B9\u306F$\u3067\u533A\u5207\u308A\u307E\u3059\u3002\u4F8B:\n\n    java.lang.Thread$State\n\n--class-path\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u4F9D\u5B58\u3059\u308B\u30AF\u30E9\u30B9\u306E\u89E3\u6C7A\u306E\u305F\u3081\u306E\n\u691C\u7D22\u30D1\u30B9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\n--for-removal\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u30B9\u30AD\u30E3\u30F3\u3068\u30EA\u30B9\u30C8\u5316\u3092\u524A\u9664\u4E88\u5B9A\u3067\u975E\u63A8\u5968\u306EAPI\u306B\n\u9650\u5B9A\u3057\u307E\u3059\u3002\u30EA\u30EA\u30FC\u30B9\u5024\u304C6\u30017\u307E\u305F\u306F8\u306E\u5834\u5408\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\n--full-version\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u30C4\u30FC\u30EB\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u6587\u5B57\u5217\u306E\u5168\u4F53\u3092\u51FA\u529B\u3057\u307E\u3059\u3002\n\n--help (-? -h)\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u5168\u4F53\u3092\u51FA\u529B\u3057\u307E\u3059\u3002\n\n--list (-l)\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u63A8\u5968API\u30BB\u30C3\u30C8\u3092\u51FA\u529B\u3057\u307E\u3059\u3002\u30B9\u30AD\u30E3\u30F3\u306F\u884C\u308F\u308C\u306A\u3044\u305F\u3081\u3001\n\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u307E\u305F\u306F\u30AF\u30E9\u30B9\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n\n--release\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u30B9\u30AD\u30E3\u30F3\u3059\u308B\u975E\u63A8\u5968API\u306E\u30BB\u30C3\u30C8\u3092\u63D0\u4F9B\u3059\u308BJava SE\n\u30EA\u30EA\u30FC\u30B9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\n--verbose (-v)\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001\u51E6\u7406\u4E2D\u306B\u8FFD\u52A0\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3067\u304D\u307E\u3059\u3002\n\n--version\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u7C21\u7565\u5316\u3055\u308C\u305F\u30C4\u30FC\u30EB\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u6587\u5B57\u5217\u3092\u51FA\u529B\u3057\u307E\u3059\u3002
 
 main.xhelp=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u30AA\u30D7\u30B7\u30E7\u30F3:\n\n  --Xload-class CLASS\n      \u6307\u5B9A\u3057\u305F\u30AF\u30E9\u30B9\u304B\u3089\u975E\u63A8\u5968\u60C5\u5831\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002\n  --Xload-csv CSVFILE\n      \u6307\u5B9A\u3057\u305FCSV\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u975E\u63A8\u5968\u60C5\u5831\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002\n  --Xload-dir DIR\n      \u6307\u5B9A\u3057\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u3042\u308B\u30AF\u30E9\u30B9\u968E\u5C64\u304B\u3089\u975E\u63A8\u5968\u60C5\u5831\u3092\n      \u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002\n  --Xload-jar JARFILE\n      \u6307\u5B9A\u3057\u305FJAR\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u975E\u63A8\u5968\u60C5\u5831\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002\n  --Xload-jdk9 JAVA_HOME\n      JAVA_HOME\u306B\u3042\u308BJDK\u304B\u3089\u975E\u63A8\u5968\u60C5\u5831\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002\n      \u30E2\u30B8\u30E5\u30E9JDK\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n  --Xload-old-jdk JAVA_HOME\n      JAVA_HOME\u306B\u3042\u308BJDK\u304B\u3089\u975E\u63A8\u5968\u60C5\u5831\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002\n      \u30E2\u30B8\u30E5\u30E9JDK\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u6307\u5B9A\u3057\u305FJDK\u306F\n      rt.jar\u30D5\u30A1\u30A4\u30EB\u3092\u6301\u3064"\u30AF\u30E9\u30B7\u30C3\u30AF"\u306AJDK\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n  --Xload-self\n      \u5B9F\u884C\u4E2DJDK\u30A4\u30E1\u30FC\u30B8\u306Ejrt:\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u3092\u8D70\u67FB\u3059\u308B\u3053\u3068\u306B\u3088\u308A\n      \u975E\u63A8\u5968\u60C5\u5831\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002\n  --Xcompiler-arg ARG\n      \u30B3\u30F3\u30D1\u30A4\u30E9\u5F15\u6570\u306E\u30EA\u30B9\u30C8\u306BARG\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002\n  --Xcsv-comment COMMENT\n      \u30B3\u30E1\u30F3\u30C8\u884C\u3068\u3057\u3066COMMENT\u3092\u51FA\u529BCSV\u30D5\u30A1\u30A4\u30EB\u306B\u8FFD\u52A0\u3057\u307E\u3059\u3002\n      -Xprint-csv\u3082\u6307\u5B9A\u3057\u305F\u5834\u5408\u306E\u307F\u6709\u52B9\u3067\u3059\u3002\n  --Xhelp\n      \u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059\u3002\n  --Xprint-csv\n      \u3042\u3089\u3086\u308B\u30AF\u30E9\u30B9\u307E\u305F\u306FJAR\u30D5\u30A1\u30A4\u30EB\u3092\u30B9\u30AD\u30E3\u30F3\u3059\u308B\u304B\u308F\u308A\u306B\n      \u30ED\u30FC\u30C9\u3057\u305F\u975E\u63A8\u5968\u60C5\u5831\u3092\u542B\u3080CSV\u30D5\u30A1\u30A4\u30EB\u3092\u51FA\u529B\u3057\u307E\u3059\u3002
 
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeprscan/resources/jdeprscan_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeprscan/resources/jdeprscan_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,6 +1,6 @@
-main.usage=\u7528\u6CD5: jdeprscan [\u9009\u9879] '{dir|jar|class}' ...\n\n\u9009\u9879:\n       --class-path PATH\n       --for-removal\n       --full-version\n  -h   --help\n  -l   --list\n       --release 6|7|8|9|10\n  -v   --verbose\n       --version
+main.usage=\u7528\u6CD5\uFF1Ajdeprscan [options] ''{dir|jar|class}'' ...\n\n\u9009\u9879\uFF1A\n        --class-path PATH\n        --for-removal\n        --full-version\n  -? -h --help\n  -l    --list\n        --release {0}\n  -v    --verbose\n        --version
 
-main.help=\u626B\u63CF\u6BCF\u4E2A\u53C2\u6570\u4EE5\u4E86\u89E3\u662F\u5426\u4F7F\u7528\u4E86\u8FC7\u65F6\u7684 API\u3002\n\u53C2\u6570\u53EF\u4EE5\u662F\u6307\u5B9A\u7A0B\u5E8F\u5305\u5206\u5C42\u7ED3\u6784, JAR \u6587\u4EF6, \n\u7C7B\u6587\u4EF6\u6216\u7C7B\u540D\u7684\u6839\u7684\u76EE\u5F55\u3002\u7C7B\u540D\u5FC5\u987B\n\u4F7F\u7528\u5168\u9650\u5B9A\u7C7B\u540D\u6307\u5B9A, \u5E76\u4F7F\u7528 $ \u5206\u9694\u7B26\n\u6307\u5B9A\u5D4C\u5957\u7C7B, \u4F8B\u5982,\n\n    java.lang.Thread$State\n\n--class-path \u9009\u9879\u63D0\u4F9B\u4E86\u7528\u4E8E\u89E3\u6790\u4ECE\u5C5E\u7C7B\u7684\n\u641C\u7D22\u8DEF\u5F84\u3002\n\n--for-removal \u9009\u9879\u9650\u5236\u626B\u63CF\u6216\u5217\u51FA\u5DF2\u8FC7\u65F6\u5E76\u5F85\u5220\u9664\n\u7684 API\u3002\u4E0D\u80FD\u4E0E\u53D1\u884C\u7248\u503C 6, 7 \u6216 8 \u4E00\u8D77\u4F7F\u7528\u3002\n\n--full-version \u9009\u9879\u8F93\u51FA\u5DE5\u5177\u7684\u5B8C\u6574\u7248\u672C\u5B57\u7B26\u4E32\u3002\n\n--help \u9009\u9879\u8F93\u51FA\u5B8C\u6574\u7684\u5E2E\u52A9\u6D88\u606F\u3002\n\n--list (-l) \u9009\u9879\u8F93\u51FA\u4E00\u7EC4\u5DF2\u8FC7\u65F6\u7684 API\u3002\u4E0D\u6267\u884C\u626B\u63CF, \n\u56E0\u6B64\u4E0D\u5E94\u63D0\u4F9B\u4EFB\u4F55\u76EE\u5F55, jar \u6216\u7C7B\u53C2\u6570\u3002\n\n--release \u9009\u9879\u6307\u5B9A\u63D0\u4F9B\u8981\u626B\u63CF\u7684\u5DF2\u8FC7\u65F6 API \u96C6\n\u7684 Java SE \u53D1\u884C\u7248\u3002\n\n--verbose (-v) \u9009\u9879\u5728\u5904\u7406\u671F\u95F4\u542F\u7528\u9644\u52A0\u6D88\u606F\u8F93\u51FA\u3002\n\n--version \u9009\u9879\u8F93\u51FA\u5DE5\u5177\u7684\u7F29\u5199\u7248\u672C\u5B57\u7B26\u4E32\u3002
+main.help=\u626B\u63CF\u6BCF\u4E2A\u53C2\u6570\u4EE5\u4E86\u89E3\u662F\u5426\u4F7F\u7528\u4E86\u8FC7\u65F6\u7684 API\u3002\n\u53C2\u6570\u53EF\u4EE5\u662F\u6307\u5B9A\u7A0B\u5E8F\u5305\u5206\u5C42\u7ED3\u6784\u3001JAR \u6587\u4EF6\u3001\n\u7C7B\u6587\u4EF6\u6216\u7C7B\u540D\u7684\u6839\u7684\u76EE\u5F55\u3002\u7C7B\u540D\u5FC5\u987B\n\u4F7F\u7528\u5168\u9650\u5B9A\u7C7B\u540D\u6307\u5B9A\uFF0C\u5E76\u4F7F\u7528 $ \u5206\u9694\u7B26\n\u6307\u5B9A\u5D4C\u5957\u7C7B\uFF0C\u4F8B\u5982\uFF0C\n\n    java.lang.Thread$State\n\n--class-path \u9009\u9879\u63D0\u4F9B\u4E86\u7528\u4E8E\u89E3\u6790\u4ECE\u5C5E\u7C7B\u7684\n\u641C\u7D22\u8DEF\u5F84\u3002\n\n--for-removal \u9009\u9879\u9650\u5236\u626B\u63CF\u6216\u5217\u51FA\u5DF2\u8FC7\u65F6\u5E76\u5F85\u5220\u9664\n\u7684 API\u3002\u4E0D\u80FD\u4E0E\u53D1\u884C\u7248\u503C 6\u30017 \u6216 8 \u4E00\u8D77\u4F7F\u7528\u3002\n\n--full-version \u9009\u9879\u8F93\u51FA\u5DE5\u5177\u7684\u5B8C\u6574\u7248\u672C\u5B57\u7B26\u4E32\u3002\n\n--help (-? -h) \u9009\u9879\u8F93\u51FA\u5B8C\u6574\u7684\u5E2E\u52A9\u6D88\u606F\u3002\n\n--list (-l) \u9009\u9879\u8F93\u51FA\u4E00\u7EC4\u5DF2\u8FC7\u65F6\u7684 API\u3002\u4E0D\u6267\u884C\u626B\u63CF\uFF0C\n\u56E0\u6B64\u4E0D\u5E94\u63D0\u4F9B\u4EFB\u4F55\u76EE\u5F55\u3001jar \u6216\u7C7B\u53C2\u6570\u3002\n\n--release \u9009\u9879\u6307\u5B9A\u63D0\u4F9B\u8981\u626B\u63CF\u7684\u5DF2\u8FC7\u65F6 API \u96C6\n\u7684 Java SE \u53D1\u884C\u7248\u3002\n\n--verbose (-v) \u9009\u9879\u5728\u5904\u7406\u671F\u95F4\u542F\u7528\u9644\u52A0\u6D88\u606F\u8F93\u51FA\u3002\n\n--version \u9009\u9879\u8F93\u51FA\u5DE5\u5177\u7684\u7F29\u5199\u7248\u672C\u5B57\u7B26\u4E32\u3002
 
 main.xhelp=\u4E0D\u652F\u6301\u7684\u9009\u9879:\n\n  --Xload-class CLASS\n      \u4ECE\u5DF2\u547D\u540D\u7C7B\u52A0\u8F7D\u8FC7\u65F6\u4FE1\u606F\u3002\n  --Xload-csv CSVFILE\n      \u4ECE\u5DF2\u547D\u540D CSV \u6587\u4EF6\u52A0\u8F7D\u8FC7\u65F6\u4FE1\u606F\u3002\n  --Xload-dir DIR\n      \u4ECE\u5DF2\u547D\u540D\u76EE\u5F55\u4E2D\u7684\u7C7B\u5206\u5C42\u7ED3\u6784\u52A0\u8F7D\n      \u8FC7\u65F6\u4FE1\u606F\u3002\n  --Xload-jar JARFILE\n      \u4ECE\u5DF2\u547D\u540D JAR \u6587\u4EF6\u52A0\u8F7D\u8FC7\u65F6\u4FE1\u606F\u3002\n  --Xload-jdk9 JAVA_HOME\n      \u4ECE\u4F4D\u4E8E JAVA_HOME \u7684 JDK \u4E2D\u52A0\u8F7D\u8FC7\u65F6\u4FE1\u606F, \n      \u8BE5 JDK \u5FC5\u987B\u662F\u4E00\u4E2A\u6A21\u5757\u5316 JDK\u3002\n  --Xload-old-jdk JAVA_HOME\n      \u4ECE\u4F4D\u4E8E JAVA_HOME \u7684 JDK \u4E2D\u52A0\u8F7D\u8FC7\u65F6\u4FE1\u606F, \n      \u8BE5 JDK \u4E0D\u80FD\u662F\u4E00\u4E2A\u6A21\u5757\u5316 JDK\u3002\u76F8\u53CD, \n      \u5DF2\u547D\u540D JDK \u5FC5\u987B\u662F\u5E26\u6709 rt.jar \u6587\u4EF6\u7684 "\u7ECF\u5178" JDK\u3002\n  --Xload-self\n      \u901A\u8FC7\u904D\u5386\u6B63\u5728\u8FD0\u884C\u7684 JDK \u6620\u50CF\u7684 jrt: \u6587\u4EF6\u7CFB\u7EDF:\n      \u52A0\u8F7D\u8FC7\u65F6\u4FE1\u606F\u3002\n  --Xcompiler-arg ARG\n      \u5C06 ARG \u6DFB\u52A0\u5230\u7F16\u8BD1\u5668\u53C2\u6570\u5217\u8868\u4E2D\u3002\n  --Xcsv-comment COMMENT\n      \u5C06 COMMENT \u4F5C\u4E3A\u6CE8\u91CA\u884C\u6DFB\u52A0\u5230\u8F93\u51FA CSV \u6587\u4EF6\u3002\n      \u4EC5\u5F53\u540C\u65F6\u63D0\u4F9B\u4E86 -Xprint-csv \u624D\u6709\u6548\u3002\n  --Xhelp\n      \u8F93\u51FA\u6B64\u6D88\u606F\u3002\n  --Xprint-csv\n      \u8F93\u51FA\u5305\u542B\u5DF2\u52A0\u8F7D\u8FC7\u65F6\u4FE1\u606F\u7684 CSV \u6587\u4EF6\n      \u800C\u4E0D\u626B\u63CF\u4EFB\u4F55\u7C7B\u6216 JAR \u6587\u4EF6\u3002
 
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,11 +1,11 @@
-main.usage.summary=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <path ...>]\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30EA\u30B9\u30C8\u306B\u3064\u3044\u3066\u306F\u3001-h\u3001-?\u3001-help\u307E\u305F\u306F--help\u3092\u4F7F\u7528\u3057\u307E\u3059
+main.usage.summary=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <path ...>]\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30EA\u30B9\u30C8\u306B\u3064\u3044\u3066\u306F\u3001--help\u3092\u4F7F\u7528\u3057\u307E\u3059
 
 main.usage=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <path ...>]\n<path>\u306B\u306F\u3001.class\u30D5\u30A1\u30A4\u30EB\u3001\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u540D\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\n\u4F7F\u7528\u3067\u304D\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:
 
 error.prefix=\u30A8\u30E9\u30FC:
 warn.prefix=\u8B66\u544A:
 
-main.opt.h=\  -h -? -help\n  --help                        \u3053\u306E\u4F7F\u7528\u65B9\u6CD5\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059
+main.opt.h=\  -h -? --help                  \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059
 
 main.opt.version=\  -version --version            \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831
 
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,11 +1,11 @@
-main.usage.summary=\u7528\u6CD5: {0} <\u9009\u9879> <\u8DEF\u5F84 ...>]\n\u4F7F\u7528 -h, -?, -help \u6216 --help \u5217\u51FA\u53EF\u80FD\u7684\u9009\u9879
+main.usage.summary=\u7528\u6CD5\uFF1A{0} <\u9009\u9879> <\u8DEF\u5F84...>]\n\u4F7F\u7528 --help \u5217\u51FA\u53EF\u80FD\u7684\u9009\u9879
 
 main.usage=\u7528\u6CD5: {0} <\u9009\u9879> <\u8DEF\u5F84...>]\n\u5176\u4E2D <\u8DEF\u5F84> \u53EF\u4EE5\u662F .class \u6587\u4EF6, \u76EE\u5F55, JAR \u6587\u4EF6\u7684\u8DEF\u5F84\u540D\u3002\n\n\u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC:
 
 error.prefix=\u9519\u8BEF:
 warn.prefix=\u8B66\u544A:
 
-main.opt.h=\  -h -? -help\n  --help                        \u8F93\u51FA\u6B64\u7528\u6CD5\u6D88\u606F
+main.opt.h=\  -h -? --help                  \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F
 
 main.opt.version=\  -version --version            \u7248\u672C\u4FE1\u606F
 
--- a/src/jdk.jdi/share/classes/com/sun/jdi/doc-files/signature.html	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jdi/share/classes/com/sun/jdi/doc-files/signature.html	Fri Jul 27 12:16:01 2018 +0100
@@ -7,10 +7,15 @@
 <META charset="UTF-8">
 <STYLE type="text/css">
 tbody th { font-weight: normal }
+table {
+    margin-left: 40px;
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
 </STYLE>
 </HEAD>
 <BODY style="background-color:white">
-<dl><dd>
+<div role="main">
 <Table Border="0">
 <caption style="font-size:x-large"><b>JDI Type Signatures</b></caption>
 <thead>
@@ -38,11 +43,11 @@
 <td>method type (including constructors)
 </tbody>
 </Table>
-</dd></dl>
 <p>For example, the Java method:
 <pre>    long f (int n, String s, int[] arr);
 </pre>has the following type signature:
 <pre>    (ILjava/lang/String;[I)J
 </pre>
+</div>
 </BODY>
 </HTML>
--- a/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -326,7 +326,7 @@
         {"zz help text",
              "** \u30B3\u30DE\u30F3\u30C9\u30FB\u30EA\u30B9\u30C8 **\nconnectors                -- \u3053\u306EVM\u5185\u306E\u4F7F\u7528\u53EF\u80FD\u306A\u30B3\u30CD\u30AF\u30BF\u3068\u30C8\u30E9\u30F3\u30B9\u30DD\u30FC\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\nrun [class [args]]        -- \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u306E\u5B9F\u884C\u3092\u958B\u59CB\u3057\u307E\u3059\n\nthreads [threadgroup]     -- \u30B9\u30EC\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nthread <thread id>        -- \u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30B9\u30EC\u30C3\u30C9\u3092\u8A2D\u5B9A\u3057\u307E\u3059\nsuspend [thread id(s)]    -- \u30B9\u30EC\u30C3\u30C9\u3092\u4E2D\u65AD\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8: \u3059\u3079\u3066)\nresume [thread id(s)]     -- \u30B9\u30EC\u30C3\u30C9\u3092\u518D\u958B\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8: \u3059\u3079\u3066)\nwhere [<thread id> | all] -- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u30C0\u30F3\u30D7\u3057\u307E\u3059\nwherei [<thread id> | all]-- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092pc\u60C5\u5831\u3068\u3068\u3082\u306B\u30C0\u30F3\u30D7\u3057\u307E\u3059\nup [n frames]             -- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u4E0A\u306B\u79FB\u52D5\u3057\u307E\u3059\ndown [n frames]           -- \u30B9\u30EC\u30C3\u30C9\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u4E0B\u306B\u79FB\u52D5\u3057\u307E\u3059\nkill <thread id> <expr>   -- \u6307\u5B9A\u3055\u308C\u305F\u4F8B\u5916\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u30B9\u30EC\u30C3\u30C9\u3092\u5F37\u5236\u7D42\u4E86\u3057\u307E\u3059\ninterrupt <thread id>     -- \u30B9\u30EC\u30C3\u30C9\u3092\u4E2D\u65AD\u3057\u307E\u3059\n\nprint <expr>              -- \u5F0F\u306E\u5024\u3092\u51FA\u529B\u3057\u307E\u3059\ndump <expr>               -- \u3059\u3079\u3066\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\neval <expr>               -- \u5F0F\u3092\u8A55\u4FA1\u3057\u307E\u3059(print\u3068\u540C\u3058)\nset <lvalue> = <expr>     -- \u65B0\u3057\u3044\u5024\u3092\u30D5\u30A3\u30FC\u30EB\u30C9/\u5909\u6570/\u914D\u5217\u8981\u7D20\u306B\u4EE3\u5165\u3057\u307E\u3059\nlocals                    -- \u73FE\u5728\u306E\u30B9\u30BF\u30C3\u30AF\u30FB\u30D5\u30EC\u30FC\u30E0\u5185\u306E\u3059\u3079\u3066\u306E\u30ED\u30FC\u30AB\u30EB\u5909\u6570\u3092\u51FA\u529B\u3057\u307E\u3059\n\nclasses                   -- \u73FE\u5728\u65E2\u77E5\u306E\u30AF\u30E9\u30B9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nclass <class id>          -- \u6307\u5B9A\u3057\u305F\u30AF\u30E9\u30B9\u306E\u8A73\u7D30\u3092\u8868\u793A\u3057\u307E\u3059\nmethods <class id>        -- \u30AF\u30E9\u30B9\u306E\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nfields <class id>         -- \u30AF\u30E9\u30B9\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\nthreadgroups              -- \u30B9\u30EC\u30C3\u30C9\u30B0\u30EB\u30FC\u30D7\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nthreadgroup <name>        -- \u73FE\u5728\u306E\u30B9\u30EC\u30C3\u30C9\u30B0\u30EB\u30FC\u30D7\u3092\u8A2D\u5B9A\u3057\u307E\u3059\n\nstop in <class id>.<method>[(argument_type,...)]\n                          -- \u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30E1\u30BD\u30C3\u30C9\u5185\u306B\u8A2D\u5B9A\u3057\u307E\u3059\nstop at <class id>:<line> -- \u884C\u306B\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\nclear <class id>.<method>[(argument_type,...)]\n                          -- \u30E1\u30BD\u30C3\u30C9\u5185\u306E\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30AF\u30EA\u30A2\u3057\u307E\u3059\nclear <class id>:<line>   -- \u884C\u306E\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30AF\u30EA\u30A2\u3057\u307E\u3059\nclear                     -- \u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\ncatch [uncaught|caught|all] <class id>|<class pattern>\n                          -- \u6307\u5B9A\u3055\u308C\u305F\u4F8B\u5916\u304C\u767A\u751F\u3057\u305F\u3068\u304D\u306B\u30D6\u30EC\u30FC\u30AF\u3057\u307E\u3059\nignore [uncaught|caught|all] <class id>|<class pattern>\n                          -- \u6307\u5B9A\u3055\u308C\u305F\u4F8B\u5916\u306E'catch'\u3092\u53D6\u308A\u6D88\u3057\u307E\u3059\nwatch [access|all] <class id>.<field name>\n                          -- \u30D5\u30A3\u30FC\u30EB\u30C9\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u307E\u305F\u306F\u5909\u66F4\u3092\u30A6\u30A9\u30C3\u30C1\u3057\u307E\u3059\nunwatch [access|all] <class id>.<field name>\n                          -- \u30D5\u30A3\u30FC\u30EB\u30C9\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u307E\u305F\u306F\u5909\u66F4\u306E\u30A6\u30A9\u30C3\u30C1\u3092\u4E2D\u6B62\u3057\u307E\u3059\ntrace [go] methods [thread]\n                          -- \u30E1\u30BD\u30C3\u30C9\u306E\u5165\u308A\u53E3\u3068\u51FA\u53E3\u3092\u30C8\u30EC\u30FC\u30B9\u3057\u307E\u3059\u3002\n                          -- 'go'\u304C\u6307\u5B9A\u3055\u308C\u308B\u307E\u3067\u3059\u3079\u3066\u306E\u30B9\u30EC\u30C3\u30C9\u306F\u4E2D\u65AD\u3057\u307E\u3059\ntrace [go] method exit | exits [thread]\n                          -- \u73FE\u5728\u306E\u30E1\u30BD\u30C3\u30C9\u306E\u51FA\u53E3\u307E\u305F\u306F\u3059\u3079\u3066\u306E\u30E1\u30BD\u30C3\u30C9\u306E\u51FA\u53E3\u3092\u30C8\u30EC\u30FC\u30B9\u3057\u307E\u3059\n                          -- 'go'\u304C\u6307\u5B9A\u3055\u308C\u308B\u307E\u3067\u3059\u3079\u3066\u306E\u30B9\u30EC\u30C3\u30C9\u306F\u4E2D\u65AD\u3057\u307E\u3059\nuntrace [methods]         -- \u30E1\u30BD\u30C3\u30C9\u306E\u958B\u59CB\u307E\u305F\u306F\u7D42\u4E86\u306E\u30C8\u30EC\u30FC\u30B9\u3092\u505C\u6B62\u3057\u307E\u3059\nstep                      -- \u73FE\u5728\u306E\u884C\u3092\u5B9F\u884C\u3057\u307E\u3059\nstep up                   -- \u73FE\u5728\u306E\u30E1\u30BD\u30C3\u30C9\u304C\u30E1\u30BD\u30C3\u30C9\u306E\u547C\u51FA\u3057\u5143\u306B\u623B\u308B\u307E\u3067\u5B9F\u884C\u3057\u307E\u3059\nstepi                     -- \u73FE\u5728\u306E\u547D\u4EE4\u3092\u5B9F\u884C\u3057\u307E\u3059\nnext                      -- 1\u884C\u3092\u30B9\u30C6\u30C3\u30D7\u5B9F\u884C\u3057\u307E\u3059(\u547C\u51FA\u3057\u3092\u30B9\u30C6\u30C3\u30D7\u30AA\u30FC\u30D0\u30FC)\ncont                      -- \u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8\u304B\u3089\u5B9F\u884C\u3092\u7D9A\u884C\u3057\u307E\u3059\n\nlist [line number|method] -- \u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9\u3092\u51FA\u529B\u3057\u307E\u3059\nuse (or sourcepath) [source file path]\n                          -- \u30BD\u30FC\u30B9\u30FB\u30D1\u30B9\u3092\u8868\u793A\u307E\u305F\u306F\u5909\u66F4\u3057\u307E\u3059\nexclude [<class pattern>, ... | \"none\"]\n                          -- \u6307\u5B9A\u3057\u305F\u30AF\u30E9\u30B9\u306E\u30B9\u30C6\u30C3\u30D7\u3084\u30E1\u30BD\u30C3\u30C9\u30FB\u30A4\u30D9\u30F3\u30C8\u3092\u5831\u544A\u3057\u307E\u305B\u3093\nclasspath                 -- \u30BF\u30FC\u30B2\u30C3\u30C8VM\u304B\u3089\u30AF\u30E9\u30B9\u30D1\u30B9\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\n\nmonitor <command>         -- \u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u505C\u6B62\u3059\u308B\u305F\u3073\u306B\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u307E\u3059\nmonitor                   -- \u30E2\u30CB\u30BF\u30FC\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nunmonitor <monitor#>      -- \u30E2\u30CB\u30BF\u30FC\u3092\u524A\u9664\u3057\u307E\u3059\nread <filename>           -- \u30B3\u30DE\u30F3\u30C9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u53D6\u3063\u3066\u5B9F\u884C\u3057\u307E\u3059\n\nlock <expr>               -- \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30ED\u30C3\u30AF\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\nthreadlocks [thread id]   -- \u30B9\u30EC\u30C3\u30C9\u306E\u30ED\u30C3\u30AF\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\n\npop                       -- \u73FE\u5728\u306E\u30D5\u30EC\u30FC\u30E0\u307E\u3067\u306E\u3059\u3079\u3066\u306E\u30B9\u30BF\u30C3\u30AF\u3092\u30DD\u30C3\u30D7\u3057\u307E\u3059\nreenter                   -- pop\u3068\u540C\u3058\u3067\u3059\u304C\u3001\u73FE\u5728\u306E\u30D5\u30EC\u30FC\u30E0\u304C\u518D\u5165\u529B\u3055\u308C\u307E\u3059\nredefine <class id> <class file name>\n                          -- \u30AF\u30E9\u30B9\u306E\u30B3\u30FC\u30C9\u3092\u518D\u5B9A\u7FA9\u3057\u307E\u3059\n\ndisablegc <expr>          -- \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u6291\u5236\u3057\u307E\u3059\nenablegc <expr>           -- \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u8A31\u53EF\u3057\u307E\u3059\n\n!!                        -- \u6700\u5F8C\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u7E70\u308A\u8FD4\u3057\u307E\u3059\n<n> <command>             -- \u30B3\u30DE\u30F3\u30C9\u3092n\u56DE\u7E70\u308A\u8FD4\u3057\u307E\u3059\n# <command>               -- \u7834\u68C4\u3057\u307E\u3059(\u64CD\u4F5C\u306A\u3057)\nhelp (\u307E\u305F\u306F?)               -- \u30B3\u30DE\u30F3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\nversion                   -- \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u307E\u3059\nexit (\u307E\u305F\u306Fquit)            -- \u30C7\u30D0\u30C3\u30AC\u3092\u7D42\u4E86\u3057\u307E\u3059\n\n<class id>: \u30D1\u30C3\u30B1\u30FC\u30B8\u4FEE\u98FE\u5B50\u3092\u542B\u3080\u5B8C\u5168\u30AF\u30E9\u30B9\u540D\n<class pattern>: \u5148\u982D\u307E\u305F\u306F\u672B\u5C3E\u306E\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9('*')\u3092\u542B\u3080\u30AF\u30E9\u30B9\u540D\n<thread id>: 'threads'\u30B3\u30DE\u30F3\u30C9\u3067\u5831\u544A\u3055\u308C\u308B\u30B9\u30EC\u30C3\u30C9\u756A\u53F7\n<expr>: Java(TM)\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E\u306E\u5F0F\u3002\n\u307B\u3068\u3093\u3069\u306E\u4E00\u822C\u7684\u306A\u69CB\u6587\u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n\n\u8D77\u52D5\u30B3\u30DE\u30F3\u30C9\u306F\u3001\"jdb.ini\"\u307E\u305F\u306F\".jdbrc\"\u306B\u914D\u7F6E\u3067\u304D\u307E\u3059\n(user.home\u307E\u305F\u306Fuser.dir\u5185)"},
         {"zz usage text",
-             "\u4F7F\u7528\u65B9\u6CD5: {0} <options> <class> <arguments>\n\n\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n    -help             \u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3059\u308B\n    -sourcepath <directories separated by \"{1}\">\n                      \u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\n    -attach <address>\n                      \u6A19\u6E96\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u30A2\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\u4E2D\u306EVM\u306B\u63A5\u7D9A\u3059\u308B\n    -listen <address>\n                      \u6A19\u6E96\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u30A2\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\u4E2D\u306EVM\u306E\u63A5\u7D9A\u3092\u5F85\u6A5F\u3059\u308B\n    -listenany\n                      \u6A19\u6E96\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u4EFB\u610F\u306E\u30A2\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\u4E2D\u306EVM\u306E\u63A5\u7D9A\u3092\u5F85\u6A5F\u3059\u308B\n    -launch\n                      ''run''\u30B3\u30DE\u30F3\u30C9\u3092\u5F85\u6A5F\u305B\u305A\u306BVM\u3092\u5373\u6642\u306B\u8D77\u52D5\u3059\u308B\n    -listconnectors   \u3053\u306EVM\u3067\u4F7F\u7528\u53EF\u80FD\u306A\u30B3\u30CD\u30AF\u30BF\u3092\u30EA\u30B9\u30C8\u3059\u308B\n    -connect <connector-name>:<name1>=<value1>,...\n                      \u6307\u5B9A\u3055\u308C\u305F\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u30EA\u30B9\u30C8\u3055\u308C\u305F\u5F15\u6570\u5024\u3067\u30BF\u30FC\u30B2\u30C3\u30C8VM\u306B\u63A5\u7D9A\u3059\u308B\n    -dbgtrace [flags] {0}\u306E\u30C7\u30D0\u30C3\u30B0\u306E\u60C5\u5831\u3092\u51FA\u529B\u3059\u308B\n    -tclient          \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092HotSpot(TM) Client Compiler\u3067\u5B9F\u884C\u3059\u308B\n    -tserver          \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092HotSpot(TM) Server Compiler\u3067\u5B9F\u884C\u3059\u308B\n\n\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u30C7\u30D0\u30C3\u30B0\u3059\u308B\u30D7\u30ED\u30BB\u30B9\u306B\u8EE2\u9001\u3055\u308C\u307E\u3059:\n    -v -verbose[:class|gc|jni]\n                      \u8A73\u7D30\u30E2\u30FC\u30C9\u3092\u30AA\u30F3\u306B\u3059\u308B\n    -D<name>=<value>  \u30B7\u30B9\u30C6\u30E0\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A2D\u5B9A\u3059\u308B\n    -classpath <directories separated by \"{1}\">\n                      \u30AF\u30E9\u30B9\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u30EA\u30B9\u30C8\u3059\u308B\n    -X<option>        \u975E\u6A19\u6E96\u306E\u30BF\u30FC\u30B2\u30C3\u30C8VM\u30AA\u30D7\u30B7\u30E7\u30F3\n\n<class>\u306F\u30C7\u30D0\u30C3\u30B0\u3092\u958B\u59CB\u3059\u308B\u30AF\u30E9\u30B9\u306E\u540D\u524D\u3067\u3059\n<arguments>\u306F<class>\u306Emain()\u30E1\u30BD\u30C3\u30C9\u306B\u6E21\u3055\u308C\u308B\u5F15\u6570\u3067\u3059\n\n\u30B3\u30DE\u30F3\u30C9\u306E\u30D8\u30EB\u30D7\u306B\u3064\u3044\u3066\u306F{0}\u30D7\u30ED\u30F3\u30D7\u30C8\u3067''help''\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
+             "\u4F7F\u7528\u65B9\u6CD5: {0} <options> <class> <arguments>\n\n\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n    -? -h --help -help \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3059\u308B\n    -sourcepath <directories separated by \"{1}\">\n                      \u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\n    -attach <address>\n                      \u6A19\u6E96\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u30A2\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\u4E2D\u306EVM\u306B\u63A5\u7D9A\u3059\u308B\n    -listen <address>\n                      \u6A19\u6E96\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u30A2\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\u4E2D\u306EVM\u306E\u63A5\u7D9A\u3092\u5F85\u6A5F\u3059\u308B\n    -listenany\n                      \u6A19\u6E96\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u4EFB\u610F\u306E\u30A2\u30C9\u30EC\u30B9\u3067\u5B9F\u884C\u4E2D\u306EVM\u306E\u63A5\u7D9A\u3092\u5F85\u6A5F\u3059\u308B\n    -launch\n                      ''run''\u30B3\u30DE\u30F3\u30C9\u3092\u5F85\u6A5F\u305B\u305A\u306BVM\u3092\u5373\u6642\u306B\u8D77\u52D5\u3059\u308B\n    -listconnectors   \u3053\u306EVM\u3067\u4F7F\u7528\u53EF\u80FD\u306A\u30B3\u30CD\u30AF\u30BF\u3092\u30EA\u30B9\u30C8\u3059\u308B\n    -connect <connector-name>:<name1>=<value1>,...\n                      \u6307\u5B9A\u3055\u308C\u305F\u30B3\u30CD\u30AF\u30BF\u3092\u4F7F\u7528\u3057\u3066\u3001\u30EA\u30B9\u30C8\u3055\u308C\u305F\u5F15\u6570\u5024\u3067\u30BF\u30FC\u30B2\u30C3\u30C8VM\u306B\u63A5\u7D9A\u3059\u308B\n    -dbgtrace [flags] {0}\u306E\u30C7\u30D0\u30C3\u30B0\u306E\u60C5\u5831\u3092\u51FA\u529B\u3059\u308B\n    -tclient          \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092HotSpot(TM) Client Compiler\u3067\u5B9F\u884C\u3059\u308B\n    -tserver          \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092HotSpot(TM) Server Compiler\u3067\u5B9F\u884C\u3059\u308B\n\n\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u30C7\u30D0\u30C3\u30B0\u3059\u308B\u30D7\u30ED\u30BB\u30B9\u306B\u8EE2\u9001\u3055\u308C\u307E\u3059:\n    -v -verbose[:class|gc|jni]\n                      \u8A73\u7D30\u30E2\u30FC\u30C9\u3092\u30AA\u30F3\u306B\u3059\u308B\n    -D<name>=<value>  \u30B7\u30B9\u30C6\u30E0\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A2D\u5B9A\u3059\u308B\n    -classpath <directories separated by \"{1}\">\n                      \u30AF\u30E9\u30B9\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u30EA\u30B9\u30C8\u3059\u308B\n    -X<option>        \u975E\u6A19\u6E96\u306E\u30BF\u30FC\u30B2\u30C3\u30C8VM\u30AA\u30D7\u30B7\u30E7\u30F3\n\n<class>\u306F\u30C7\u30D0\u30C3\u30B0\u3092\u958B\u59CB\u3059\u308B\u30AF\u30E9\u30B9\u306E\u540D\u524D\u3067\u3059\n<arguments>\u306F<class>\u306Emain()\u30E1\u30BD\u30C3\u30C9\u306B\u6E21\u3055\u308C\u308B\u5F15\u6570\u3067\u3059\n\n\u30B3\u30DE\u30F3\u30C9\u306E\u30D8\u30EB\u30D7\u306B\u3064\u3044\u3066\u306F{0}\u30D7\u30ED\u30F3\u30D7\u30C8\u3067''help''\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
         // END OF MATERIAL TO LOCALIZE
         };
 
--- a/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java	Fri Jul 27 12:16:01 2018 +0100
@@ -326,7 +326,7 @@
         {"zz help text",
              "** \u547D\u4EE4\u5217\u8868 **\nconnectors                -- \u5217\u51FA\u6B64 VM \u4E2D\u53EF\u7528\u7684\u8FDE\u63A5\u5668\u548C\u4F20\u8F93\n\nrun [class [args]]        -- \u5F00\u59CB\u6267\u884C\u5E94\u7528\u7A0B\u5E8F\u7684\u4E3B\u7C7B\n\nthreads [threadgroup]     -- \u5217\u51FA\u7EBF\u7A0B\nthread <thread id>        -- \u8BBE\u7F6E\u9ED8\u8BA4\u7EBF\u7A0B\nsuspend [thread id(s)]    -- \u6302\u8D77\u7EBF\u7A0B (\u9ED8\u8BA4\u503C: all)\nresume [thread id(s)]     -- \u6062\u590D\u7EBF\u7A0B (\u9ED8\u8BA4\u503C: all)\nwhere [<thread id> | all] -- \u8F6C\u50A8\u7EBF\u7A0B\u7684\u5806\u6808\nwherei [<thread id> | all]-- \u8F6C\u50A8\u7EBF\u7A0B\u7684\u5806\u6808, \u4EE5\u53CA pc \u4FE1\u606F\nup [n frames]             -- \u4E0A\u79FB\u7EBF\u7A0B\u7684\u5806\u6808\ndown [n frames]           -- \u4E0B\u79FB\u7EBF\u7A0B\u7684\u5806\u6808\nkill <thread id> <expr>   -- \u7EC8\u6B62\u5177\u6709\u7ED9\u5B9A\u7684\u5F02\u5E38\u9519\u8BEF\u5BF9\u8C61\u7684\u7EBF\u7A0B\ninterrupt <thread id>     -- \u4E2D\u65AD\u7EBF\u7A0B\n\nprint <expr>              -- \u8F93\u51FA\u8868\u8FBE\u5F0F\u7684\u503C\ndump <expr>               -- \u8F93\u51FA\u6240\u6709\u5BF9\u8C61\u4FE1\u606F\neval <expr>               -- \u5BF9\u8868\u8FBE\u5F0F\u6C42\u503C (\u4E0E print \u76F8\u540C)\nset <lvalue> = <expr>     -- \u5411\u5B57\u6BB5/\u53D8\u91CF/\u6570\u7EC4\u5143\u7D20\u5206\u914D\u65B0\u503C\nlocals                    -- \u8F93\u51FA\u5F53\u524D\u5806\u6808\u5E27\u4E2D\u7684\u6240\u6709\u672C\u5730\u53D8\u91CF\n\nclasses                   -- \u5217\u51FA\u5F53\u524D\u5DF2\u77E5\u7684\u7C7B\nclass <class id>          -- \u663E\u793A\u5DF2\u547D\u540D\u7C7B\u7684\u8BE6\u7EC6\u8D44\u6599\nmethods <class id>        -- \u5217\u51FA\u7C7B\u7684\u65B9\u6CD5\nfields <class id>         -- \u5217\u51FA\u7C7B\u7684\u5B57\u6BB5\n\nthreadgroups              -- \u5217\u51FA\u7EBF\u7A0B\u7EC4\nthreadgroup <name>        -- \u8BBE\u7F6E\u5F53\u524D\u7EBF\u7A0B\u7EC4\n\nstop in <class id>.<method>[(argument_type,...)]\n                          -- \u5728\u65B9\u6CD5\u4E2D\u8BBE\u7F6E\u65AD\u70B9\nstop at <class id>:<line> -- \u5728\u884C\u4E2D\u8BBE\u7F6E\u65AD\u70B9\nclear <class id>.<method>[(argument_type,...)]\n                          -- \u6E05\u9664\u65B9\u6CD5\u4E2D\u7684\u65AD\u70B9\nclear <class id>:<line>   -- \u6E05\u9664\u884C\u4E2D\u7684\u65AD\u70B9\nclear                     -- \u5217\u51FA\u65AD\u70B9\ncatch [uncaught|caught|all] <class id>|<class pattern>\n                          -- \u51FA\u73B0\u6307\u5B9A\u7684\u5F02\u5E38\u9519\u8BEF\u65F6\u4E2D\u65AD\nignore [uncaught|caught|all] <class id>|<class pattern>\n                          -- \u5BF9\u4E8E\u6307\u5B9A\u7684\u5F02\u5E38\u9519\u8BEF, \u53D6\u6D88 'catch'\nwatch [access|all] <class id>.<field name>\n                          -- \u76D1\u89C6\u5BF9\u5B57\u6BB5\u7684\u8BBF\u95EE/\u4FEE\u6539\nunwatch [access|all] <class id>.<field name>\n                          -- \u505C\u6B62\u76D1\u89C6\u5BF9\u5B57\u6BB5\u7684\u8BBF\u95EE/\u4FEE\u6539\ntrace [go] methods [thread]\n                          -- \u8DDF\u8E2A\u65B9\u6CD5\u8FDB\u5165\u548C\u9000\u51FA\u3002\n                          -- \u9664\u975E\u6307\u5B9A 'go', \u5426\u5219\u6302\u8D77\u6240\u6709\u7EBF\u7A0B\ntrace [go] method exit | exits [thread]\n                          -- \u8DDF\u8E2A\u5F53\u524D\u65B9\u6CD5\u7684\u9000\u51FA, \u6216\u8005\u6240\u6709\u65B9\u6CD5\u7684\u9000\u51FA\n                          -- \u9664\u975E\u6307\u5B9A 'go', \u5426\u5219\u6302\u8D77\u6240\u6709\u7EBF\u7A0B\nuntrace [methods]         -- \u505C\u6B62\u8DDF\u8E2A\u65B9\u6CD5\u8FDB\u5165\u548C/\u6216\u9000\u51FA\nstep                      -- \u6267\u884C\u5F53\u524D\u884C\nstep up                   -- \u4E00\u76F4\u6267\u884C, \u76F4\u5230\u5F53\u524D\u65B9\u6CD5\u8FD4\u56DE\u5230\u5176\u8C03\u7528\u65B9\nstepi                     -- \u6267\u884C\u5F53\u524D\u6307\u4EE4\n\u4E0B\u4E00\u6B65                      -- \u6B65\u8FDB\u4E00\u884C (\u6B65\u8FC7\u8C03\u7528)\ncont                      -- \u4ECE\u65AD\u70B9\u5904\u7EE7\u7EED\u6267\u884C\n\nlist [line number|method] -- \u8F93\u51FA\u6E90\u4EE3\u7801\nuse (\u6216 sourcepath) [source file path]\n                          -- \u663E\u793A\u6216\u66F4\u6539\u6E90\u8DEF\u5F84\nexclude [<class pattern>, ... | \"none\"]\n                          -- \u5BF9\u4E8E\u6307\u5B9A\u7684\u7C7B, \u4E0D\u62A5\u544A\u6B65\u9AA4\u6216\u65B9\u6CD5\u4E8B\u4EF6\nclasspath                 -- \u4ECE\u76EE\u6807 VM \u8F93\u51FA\u7C7B\u8DEF\u5F84\u4FE1\u606F\n\nmonitor <command>         -- \u6BCF\u6B21\u7A0B\u5E8F\u505C\u6B62\u65F6\u6267\u884C\u547D\u4EE4\nmonitor                   -- \u5217\u51FA\u76D1\u89C6\u5668\nunmonitor <monitor#>      -- \u5220\u9664\u76D1\u89C6\u5668\nread <filename>           -- \u8BFB\u53D6\u5E76\u6267\u884C\u547D\u4EE4\u6587\u4EF6\n\nlock <expr>               -- \u8F93\u51FA\u5BF9\u8C61\u7684\u9501\u4FE1\u606F\nthreadlocks [thread id]   -- \u8F93\u51FA\u7EBF\u7A0B\u7684\u9501\u4FE1\u606F\n\npop                       -- \u901A\u8FC7\u5F53\u524D\u5E27\u51FA\u6808, \u4E14\u5305\u542B\u5F53\u524D\u5E27\nreenter                   -- \u4E0E pop \u76F8\u540C, \u4F46\u91CD\u65B0\u8FDB\u5165\u5F53\u524D\u5E27\nredefine <class id> <class file name>\n                          -- \u91CD\u65B0\u5B9A\u4E49\u7C7B\u7684\u4EE3\u7801\n\ndisablegc <expr>          -- \u7981\u6B62\u5BF9\u8C61\u7684\u5783\u573E\u6536\u96C6\nenablegc <expr>           -- \u5141\u8BB8\u5BF9\u8C61\u7684\u5783\u573E\u6536\u96C6\n\n!!                        -- \u91CD\u590D\u6267\u884C\u6700\u540E\u4E00\u4E2A\u547D\u4EE4\n<n> <command>             -- \u5C06\u547D\u4EE4\u91CD\u590D\u6267\u884C n \u6B21\n# <command>               -- \u653E\u5F03 (\u65E0\u64CD\u4F5C)\nhelp (\u6216 ?)               -- \u5217\u51FA\u547D\u4EE4\nversion                   -- \u8F93\u51FA\u7248\u672C\u4FE1\u606F\nexit (\u6216 quit)            -- \u9000\u51FA\u8C03\u8BD5\u5668\n\n<class id>: \u5E26\u6709\u7A0B\u5E8F\u5305\u9650\u5B9A\u7B26\u7684\u5B8C\u6574\u7C7B\u540D\n<class pattern>: \u5E26\u6709\u524D\u5BFC\u6216\u5C3E\u968F\u901A\u914D\u7B26 ('*') \u7684\u7C7B\u540D\n<thread id>: 'threads' \u547D\u4EE4\u4E2D\u62A5\u544A\u7684\u7EBF\u7A0B\u7F16\u53F7\n<expr>: Java(TM) \u7F16\u7A0B\u8BED\u8A00\u8868\u8FBE\u5F0F\u3002\n\u652F\u6301\u5927\u591A\u6570\u5E38\u89C1\u8BED\u6CD5\u3002\n\n\u53EF\u4EE5\u5C06\u542F\u52A8\u547D\u4EE4\u7F6E\u4E8E \"jdb.ini\" \u6216 \".jdbrc\" \u4E2D\n\u4F4D\u4E8E user.home \u6216 user.dir \u4E2D"},
         {"zz usage text",
-             "\u7528\u6CD5: {0} <options> <class> <arguments>\n\n\u5176\u4E2D, \u9009\u9879\u5305\u62EC:\n    -help             \u8F93\u51FA\u6B64\u6D88\u606F\u5E76\u9000\u51FA\n    -sourcepath <\u7531 \"{1}\" \u5206\u9694\u7684\u76EE\u5F55>\n                      \u8981\u5728\u5176\u4E2D\u67E5\u627E\u6E90\u6587\u4EF6\u7684\u76EE\u5F55\n    -attach <address>\n                      \u4F7F\u7528\u6807\u51C6\u8FDE\u63A5\u5668\u9644\u52A0\u5230\u6307\u5B9A\u5730\u5740\u5904\u6B63\u5728\u8FD0\u884C\u7684 VM\n    -listen <address>\n                      \u7B49\u5F85\u6B63\u5728\u8FD0\u884C\u7684 VM \u4F7F\u7528\u6807\u51C6\u8FDE\u63A5\u5668\u5728\u6307\u5B9A\u5730\u5740\u5904\u8FDE\u63A5\n    -listenany\n                      \u7B49\u5F85\u6B63\u5728\u8FD0\u884C\u7684 VM \u4F7F\u7528\u6807\u51C6\u8FDE\u63A5\u5668\u5728\u4EFB\u4F55\u53EF\u7528\u5730\u5740\u5904\u8FDE\u63A5\n    -launch\n                      \u7ACB\u5373\u542F\u52A8 VM \u800C\u4E0D\u662F\u7B49\u5F85 ''run'' \u547D\u4EE4\n    -listconnectors   \u5217\u51FA\u6B64 VM \u4E2D\u7684\u53EF\u7528\u8FDE\u63A5\u5668\n    -connect <connector-name>:<name1>=<value1>,...\n                      \u4F7F\u7528\u6240\u5217\u53C2\u6570\u503C\u901A\u8FC7\u6307\u5B9A\u7684\u8FDE\u63A5\u5668\u8FDE\u63A5\u5230\u76EE\u6807 VM\n    -dbgtrace [flags] \u8F93\u51FA\u4FE1\u606F\u4F9B\u8C03\u8BD5{0}\n    -tclient          \u5728 HotSpot(TM) \u5BA2\u6237\u673A\u7F16\u8BD1\u5668\u4E2D\u8FD0\u884C\u5E94\u7528\u7A0B\u5E8F\n    -tserver          \u5728 HotSpot(TM) \u670D\u52A1\u5668\u7F16\u8BD1\u5668\u4E2D\u8FD0\u884C\u5E94\u7528\u7A0B\u5E8F\n\n\u8F6C\u53D1\u5230\u88AB\u8C03\u8BD5\u8FDB\u7A0B\u7684\u9009\u9879:\n    -v -verbose[:class|gc|jni]\n                      \u542F\u7528\u8BE6\u7EC6\u6A21\u5F0F\n    -D<name>=<value>  \u8BBE\u7F6E\u7CFB\u7EDF\u5C5E\u6027\n    -classpath <\u7531 \"{1}\" \u5206\u9694\u7684\u76EE\u5F55>\n                      \u5217\u51FA\u8981\u5728\u5176\u4E2D\u67E5\u627E\u7C7B\u7684\u76EE\u5F55\n    -X<option>        \u975E\u6807\u51C6\u76EE\u6807 VM \u9009\u9879\n\n<class> \u662F\u8981\u5F00\u59CB\u8C03\u8BD5\u7684\u7C7B\u7684\u540D\u79F0\n<arguments> \u662F\u4F20\u9012\u5230 <class> \u7684 main() \u65B9\u6CD5\u7684\u53C2\u6570\n\n\u8981\u83B7\u5F97\u547D\u4EE4\u7684\u5E2E\u52A9, \u8BF7\u5728{0}\u63D0\u793A\u4E0B\u952E\u5165 ''help''"},
+             "\u7528\u6CD5\uFF1A{0} <\u9009\u9879> <\u7C7B> <\u53C2\u6570>\n\n\u5176\u4E2D\uFF0C\u9009\u9879\u5305\u62EC\uFF1A\n    -? -h --help -help \u8F93\u51FA\u6B64\u6D88\u606F\u5E76\u9000\u51FA\n    -sourcepath <\u7531 \"{1}\" \u5206\u9694\u7684\u76EE\u5F55>\n                      \u8981\u5728\u5176\u4E2D\u67E5\u627E\u6E90\u6587\u4EF6\u7684\u76EE\u5F55\n    -attach <\u5730\u5740>\n                      \u4F7F\u7528\u6807\u51C6\u8FDE\u63A5\u5668\u9644\u52A0\u5230\u6307\u5B9A\u5730\u5740\u5904\u6B63\u5728\u8FD0\u884C\u7684 VM\n    -listen <\u5730\u5740>\n                      \u7B49\u5F85\u6B63\u5728\u8FD0\u884C\u7684 VM \u4F7F\u7528\u6807\u51C6\u8FDE\u63A5\u5668\u5728\u6307\u5B9A\u5730\u5740\u5904\u8FDE\u63A5\n    -listenany\n                      \u7B49\u5F85\u6B63\u5728\u8FD0\u884C\u7684 VM \u4F7F\u7528\u6807\u51C6\u8FDE\u63A5\u5668\u5728\u4EFB\u4F55\u53EF\u7528\u5730\u5740\u5904\u8FDE\u63A5\n    -launch\n                      \u7ACB\u5373\u542F\u52A8 VM \u800C\u4E0D\u662F\u7B49\u5F85 ''run'' \u547D\u4EE4\n    -listconnectors   \u5217\u51FA\u6B64 VM \u4E2D\u7684\u53EF\u7528\u8FDE\u63A5\u5668\n    -connect <\u8FDE\u63A5\u5668\u540D\u79F0>:<\u540D\u79F0 1>=<\u503C 1>,...\n                      \u4F7F\u7528\u6240\u5217\u53C2\u6570\u503C\u901A\u8FC7\u6307\u5B9A\u7684\u8FDE\u63A5\u5668\u8FDE\u63A5\u5230\u76EE\u6807 VM\n    -dbgtrace [flags] \u8F93\u51FA\u8C03\u8BD5 {0} \u7684\u4FE1\u606F\n    -tclient          \u5728 HotSpot(TM) \u5BA2\u6237\u673A\u7F16\u8BD1\u5668\u4E2D\u8FD0\u884C\u5E94\u7528\u7A0B\u5E8F\n    -tserver          \u5728 HotSpot(TM) \u670D\u52A1\u5668\u7F16\u8BD1\u5668\u4E2D\u8FD0\u884C\u5E94\u7528\u7A0B\u5E8F\n\n\u8F6C\u53D1\u5230\u88AB\u8C03\u8BD5\u8FDB\u7A0B\u7684\u9009\u9879\uFF1A\n    -v -verbose[:class|gc|jni]\n                      \u542F\u7528\u8BE6\u7EC6\u6A21\u5F0F\n    -D<\u540D\u79F0>=<\u503C>  \u8BBE\u7F6E\u7CFB\u7EDF\u5C5E\u6027\n    -classpath <\u7531 \"{1}\" \u5206\u9694\u7684\u76EE\u5F55>\n                      \u5217\u51FA\u8981\u5728\u5176\u4E2D\u67E5\u627E\u7C7B\u7684\u76EE\u5F55\n    -X<\u9009\u9879>        \u975E\u6807\u51C6\u76EE\u6807 VM \u9009\u9879\n\n<\u7C7B> \u662F\u8981\u5F00\u59CB\u8C03\u8BD5\u7684\u7C7B\u7684\u540D\u79F0\n<\u53C2\u6570> \u662F\u4F20\u9012\u5230 <\u7C7B> \u7684 main() \u65B9\u6CD5\u7684\u53C2\u6570\n\n\u8981\u83B7\u5F97\u547D\u4EE4\u7684\u5E2E\u52A9\uFF0C\u8BF7\u5728 {0} \u63D0\u793A\u4E0B\u952E\u5165 ''help''"},
         // END OF MATERIAL TO LOCALIZE
         };
 
--- a/src/jdk.jdwp.agent/share/native/libjdwp/ThreadReferenceImpl.c	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/ThreadReferenceImpl.c	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -214,12 +214,14 @@
 frames(PacketInputStream *in, PacketOutputStream *out)
 {
     jvmtiError error;
-    FrameNumber fnum;
+    FrameNumber index;
     jint count;
+    jint filledIn;
     JNIEnv *env;
     jthread thread;
     jint startIndex;
     jint length;
+    jvmtiFrameInfo* frames;
 
     env = getEnv();
 
@@ -273,37 +275,37 @@
 
     (void)outStream_writeInt(out, length);
 
-    for(fnum = startIndex ; fnum < startIndex+length ; fnum++ ) {
+    frames = jvmtiAllocate(sizeof(jvmtiFrameInfo) * length);
 
-        WITH_LOCAL_REFS(env, 1) {
+    if (frames == NULL) {
+        outStream_setError(out, JDWP_ERROR(OUT_OF_MEMORY));
+        return JNI_TRUE;
+    }
 
-            jclass clazz;
-            jmethodID method;
-            jlocation location;
+    error = JVMTI_FUNC_PTR(gdata->jvmti, GetStackTrace)
+                          (gdata->jvmti, thread, startIndex, length, frames,
+                           &filledIn);
+
+    /* Should not happen. */
+    if (error == JVMTI_ERROR_NONE && length != filledIn) {
+        error = JVMTI_ERROR_INTERNAL;
+    }
 
-            /* Get location info */
-            error = JVMTI_FUNC_PTR(gdata->jvmti,GetFrameLocation)
-                (gdata->jvmti, thread, fnum, &method, &location);
-            if (error == JVMTI_ERROR_OPAQUE_FRAME) {
-                clazz = NULL;
-                location = -1L;
-                error = JVMTI_ERROR_NONE;
-            } else if ( error == JVMTI_ERROR_NONE ) {
-                error = methodClass(method, &clazz);
-                if ( error == JVMTI_ERROR_NONE ) {
-                    FrameID frame;
-                    frame = createFrameID(thread, fnum);
-                    (void)outStream_writeFrameID(out, frame);
-                    writeCodeLocation(out, clazz, method, location);
-                }
+    for (index = 0; index < filledIn && error == JVMTI_ERROR_NONE; ++index) {
+        WITH_LOCAL_REFS(env, 1) {
+            jclass clazz;
+            error = methodClass(frames[index].method, &clazz);
+
+            if (error == JVMTI_ERROR_NONE) {
+                FrameID frame = createFrameID(thread, index + startIndex);
+                outStream_writeFrameID(out, frame);
+                writeCodeLocation(out, clazz, frames[index].method,
+                                  frames[index].location);
             }
-
         } END_WITH_LOCAL_REFS(env);
+    }
 
-        if (error != JVMTI_ERROR_NONE)
-            break;
-
-    }
+    jvmtiDeallocate(frames);
 
     if (error != JVMTI_ERROR_NONE) {
         outStream_setError(out, map2jdwpError(error));
--- a/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
 
 main.usage=\u4F7F\u7528\u65B9\u6CD5: {0} <options> --module-path <modulepath> --add-modules <module>[,<module>...]\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059:
 
-main.opt.help=\  -h\u3001--help                            \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059
+main.opt.help=\  -h\u3001--help\u3001-?                        \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059
 
 main.opt.version=\      --version                         \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831
 
@@ -85,7 +85,7 @@
 err.unknown.option=\u4E0D\u660E\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: {0}
 err.missing.arg={0}\u306B\u5024\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093
 err.internal.error=\u5185\u90E8\u30A8\u30E9\u30FC: {0} {1} {2}
-err.invalid.arg.for.option=\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5F15\u6570\u304C\u7121\u52B9\u3067\u3059: {0}
+err.invalid.arg.for.option={0}\u306F"{1}"\u5F15\u6570\u3092\u53D7\u3051\u5165\u308C\u307E\u305B\u3093
 err.option.after.class=\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u30AF\u30E9\u30B9\u306E\u524D\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059: {0}
 err.option.unsupported={0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093: {1}
 err.orphan.arguments={0}\u306F\u7121\u52B9\u306A\u5F15\u6570\u3067\u3059
--- a/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
 
 main.usage=\u7528\u6CD5: {0} <\u9009\u9879> --module-path <\u6A21\u5757\u8DEF\u5F84> --add-modules <\u6A21\u5757>[,<\u6A21\u5757>...]\n\u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC:
 
-main.opt.help=\  -h, --help                              \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F
+main.opt.help=\  -h, --help, -?                        \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F
 
 main.opt.version=\      --version                           \u7248\u672C\u4FE1\u606F
 
@@ -85,7 +85,7 @@
 err.unknown.option=\u672A\u77E5\u9009\u9879: {0}
 err.missing.arg=\u6CA1\u6709\u4E3A{0}\u6307\u5B9A\u503C
 err.internal.error=\u5185\u90E8\u9519\u8BEF: {0} {1} {2}
-err.invalid.arg.for.option=\u9009\u9879\u7684\u53C2\u6570\u65E0\u6548: {0}
+err.invalid.arg.for.option={0} \u4E0D\u63A5\u53D7 "{1}" \u53C2\u6570
 err.option.after.class=\u5FC5\u987B\u5728\u7C7B\u4E4B\u524D\u6307\u5B9A\u9009\u9879: {0}
 err.option.unsupported=\u4E0D\u652F\u6301{0}: {1}
 err.orphan.arguments=\u65E0\u6548\u7684\u53C2\u6570: {0}
--- a/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
 main.opt.mode.describe=describe  - \u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u8A73\u7D30\u3092\u51FA\u529B\u3057\u307E\u3059
 main.opt.mode.hash=hash      - \u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30CF\u30C3\u30B7\u30E5\u3092\u8A18\u9332\u3057\u307E\u3059\u3002
 
-main.opt.help=\u3053\u306E\u4F7F\u7528\u65B9\u6CD5\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059
+main.opt.help=\u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059
 main.opt.help-extra=\u8FFD\u52A0\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30D8\u30EB\u30D7\u3092\u51FA\u529B\u3057\u307E\u3059
 main.opt.version=\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831
 main.opt.class-path=\u30AF\u30E9\u30B9\u3092\u542B\u3080\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3jar\u30D5\u30A1\u30A4\u30EB|\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA
--- a/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
 main.opt.mode.describe=describe  - \u8F93\u51FA\u6A21\u5757\u8BE6\u7EC6\u4FE1\u606F
 main.opt.mode.hash=hash      - \u8BB0\u5F55\u7ED1\u5B9A\u6A21\u5757\u7684\u6563\u5217\u3002
 
-main.opt.help=\u8F93\u51FA\u6B64\u7528\u6CD5\u6D88\u606F
+main.opt.help=\u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F
 main.opt.help-extra=\u8F93\u51FA\u989D\u5916\u9009\u9879\u7684\u5E2E\u52A9
 main.opt.version=\u7248\u672C\u4FE1\u606F
 main.opt.class-path=\u5305\u542B\u7C7B\u7684\u5E94\u7528\u7A0B\u5E8F jar \u6587\u4EF6|\u76EE\u5F55
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -148,6 +148,11 @@
 
 jshell.err.corrupted.stored.startup = \u683C\u7D0D\u3055\u308C\u3066\u3044\u308B\u8D77\u52D5\u304C\u58CA\u308C\u3066\u3044\u307E\u3059\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u4F7F\u7528\u3057\u307E\u3059 -- {0}
 
+jshell.err.exception.thrown = \u4F8B\u5916{0}
+jshell.err.exception.thrown.message = \u4F8B\u5916{0}: {1}
+jshell.err.exception.cause = \u539F\u56E0: {0}
+jshell.err.exception.cause.message = \u539F\u56E0: {0}: {1}
+
 jshell.console.see.synopsis = <\u6982\u8981\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u30BF\u30D6\u3092\u518D\u5EA6\u62BC\u3057\u3066\u304F\u3060\u3055\u3044>
 jshell.console.see.full.documentation = <\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5168\u4F53\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u30BF\u30D6\u3092\u518D\u5EA6\u62BC\u3057\u3066\u304F\u3060\u3055\u3044>
 jshell.console.see.documentation = <\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u30BF\u30D6\u3092\u518D\u5EA6\u62BC\u3057\u3066\u304F\u3060\u3055\u3044>
@@ -172,7 +177,7 @@
 
 jshell.fix.wrong.shortcut =[Shift]-[Tab]\u306E\u5F8C\u306E\u6587\u5B57\u304C\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57\u3067\u3059\u3002\n\u81EA\u52D5\u30A4\u30F3\u30DD\u30FC\u30C8\u306B\u306F"i"\u3001\u5909\u6570\u306E\u4F5C\u6210\u306B\u306F"v"\u3001\u30E1\u30BD\u30C3\u30C9\u306E\u4F5C\u6210\u306B\u306F"m"\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u8A73\u7D30\u306F\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n/help shortcuts
 
-help.usage = \u4F7F\u7528\u65B9\u6CD5:   jshell <option>... <load-file>...\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059:\n    --class-path <path>   \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --module-path <path>  \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --add-modules <module>(,<module>)*\n                          \u89E3\u6C7A\u3059\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u3001\u307E\u305F\u306F<module>\u304CALL-MODULE-PATH\n                            \u3067\u3042\u308B\u5834\u5408\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306E\u3059\u3079\u3066\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --startup <file>      \u8D77\u52D5\u5B9A\u7FA9\u306E\u4EE3\u66FF\u3068\u3057\u3066\u5B9F\u884C\u3055\u308C\u307E\u3059\n    --no-startup          \u8D77\u52D5\u5B9A\u7FA9\u3092\u5B9F\u884C\u3057\u307E\u305B\u3093\n    --feedback <mode>     \u521D\u671F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\u30E2\u30FC\u30C9\u306F\n                            \u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B(silent\u3001concise\u3001normal\u307E\u305F\u306Fverbose)\u304B\u3001\n                            \u4E8B\u524D\u306B\u30E6\u30FC\u30B6\u30FC\u304C\u5B9A\u7FA9\u3067\u304D\u307E\u3059\n    -q                    \u7C21\u6F54\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback concise\u3068\u540C\u3058\n    -s                    \u975E\u5E38\u306B\u7C21\u6F54\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback silent\u3068\u540C\u3058\n    -v                    \u8A73\u7D30\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback verbose\u3068\u540C\u3058\n    -J<flag>              <flag>\u3092\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u76F4\u63A5\u6E21\u3057\u307E\u3059\u3002\n                            \u5B9F\u884C\u6642\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-J\u3092\u4F7F\u7528\u3057\u307E\u3059\n    -R<flag>              <flag>\u3092\u30EA\u30E2\u30FC\u30C8\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u6E21\u3057\u307E\u3059\u3002\n                            \u30EA\u30E2\u30FC\u30C8\u30FB\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-R\u3092\u4F7F\u7528\u3057\u307E\u3059\n    -C<flag>              <flag>\u3092\u30B3\u30F3\u30D1\u30A4\u30E9\u306B\u6E21\u3057\u307E\u3059\u3002\n                            \u30B3\u30F3\u30D1\u30A4\u30E9\u30FB\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-C\u3092\u4F7F\u7528\u3057\u307E\u3059\n    --version             \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --show-version        \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u7D9A\u884C\u3057\u307E\u3059\n    --help                \u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u3053\u306E\u6982\u8981\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --help-extra, -X      \
+help.usage = \u4F7F\u7528\u65B9\u6CD5:   jshell <option>... <load-file>...\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059:\n    --class-path <path>   \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --module-path <path>  \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --add-modules <module>(,<module>)*\n                           \u89E3\u6C7A\u3059\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u3001\u307E\u305F\u306F<module>\u304CALL-MODULE-PATH\n                            \u3067\u3042\u308B\u5834\u5408\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306E\u3059\u3079\u3066\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --enable-preview      \u30B3\u30FC\u30C9\u3092\u3053\u306E\u30EA\u30EA\u30FC\u30B9\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u6A5F\u80FD\u306B\u4F9D\u5B58\u3055\u305B\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\n    --startup <file>      \u8D77\u52D5\u5B9A\u7FA9\u306E\u4EE3\u66FF\u3068\u3057\u3066\u5B9F\u884C\u3055\u308C\u307E\u3059\n    --no-startup          \u8D77\u52D5\u5B9A\u7FA9\u3092\u5B9F\u884C\u3057\u307E\u305B\u3093\n    --feedback <mode>     \u521D\u671F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\u30E2\u30FC\u30C9\u306F\n                            \u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B(silent\u3001concise\u3001normal\u307E\u305F\u306Fverbose)\u304B\u3001\n                            \u4E8B\u524D\u306B\u30E6\u30FC\u30B6\u30FC\u304C\u5B9A\u7FA9\u3067\u304D\u307E\u3059\n    -q                    \u7C21\u6F54\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback concise\u3068\u540C\u3058\n    -s                    \u975E\u5E38\u306B\u7C21\u6F54\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback silent\u3068\u540C\u3058\n    -v                    \u8A73\u7D30\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback verbose\u3068\u540C\u3058\n    -J<flag>              <flag>\u3092\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u76F4\u63A5\u6E21\u3057\u307E\u3059\u3002\n                            \u5B9F\u884C\u6642\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-J\u3092\u4F7F\u7528\u3057\u307E\u3059\n    -R<flag>              <flag>\u3092\u30EA\u30E2\u30FC\u30C8\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u6E21\u3057\u307E\u3059\u3002\n                            \u30EA\u30E2\u30FC\u30C8\u30FB\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-R\u3092\u4F7F\u7528\u3057\u307E\u3059\n    -C<flag>              <flag>\u3092\u30B3\u30F3\u30D1\u30A4\u30E9\u306B\u6E21\u3057\u307E\u3059\u3002\n                            \u30B3\u30F3\u30D1\u30A4\u30E9\u30FB\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-C\u3092\u4F7F\u7528\u3057\u307E\u3059\n    --version              \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --show-version        \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u7D9A\u884C\u3057\u307E\u3059\n    --help, -?, -h        \u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u3053\u306E\u6982\u8981\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --help-extra, -X      \
 \u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30D8\u30EB\u30D7\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n\n\u30D5\u30A1\u30A4\u30EB\u5F15\u6570\u306B\u306F\u3001\u30D5\u30A1\u30A4\u30EB\u540D\u304B\u3001\u307E\u305F\u306F\u4E8B\u524D\u5B9A\u7FA9\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u540D(DEFAULT\u3001\nPRINTING\u307E\u305F\u306FJAVASE)\u306E1\u3064\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\nload-file\u3067\u3082\u3001\u5BFE\u8A71\u578BI/O\u3092\u4F7F\u7528\u305B\u305A\u306B\u3001"-"\u3092\u6307\u5B9A\u3057\u3066\u6A19\u6E96\u5165\u529B\u3092\u793A\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\n\n\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3(--class-path\u3001--module-path\u3001--add-modules)\u306E\n\u8A73\u7D30\u306F\u3001\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n\t/help context\n\n\u30D1\u30B9\u306B\u306F\u3001\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3068\u30A2\u30FC\u30AB\u30A4\u30D6\u304C\u30EA\u30B9\u30C8\u3055\u308C\u307E\u3059\u3002Windows\u306E\u5834\u5408\u306F\u3001\n\u30BB\u30DF\u30B3\u30ED\u30F3(;)\u3092\u4F7F\u7528\u3057\u3066\u30D1\u30B9\u306E\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\u305D\u306E\u4ED6\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306F\u3001\n\u30B3\u30ED\u30F3(:)\u3092\u4F7F\u7528\u3057\u3066\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n
 help.usage.x = \    --add-exports <module>/<package>   \u5B9A\u7FA9\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u3089\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u308B\u3068\n                                         \u307F\u306A\u3055\u308C\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --execution <spec>                 \u4EE3\u66FF\u5B9F\u884C\u30A8\u30F3\u30B8\u30F3\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n                                         \u3053\u3053\u3067\u3001<spec>\u306FExecutionControl spec\u3067\u3059\u3002\n                                         spec\u306E\u69CB\u6587\u306B\u3064\u3044\u3066\u306F\u3001\u30D1\u30C3\u30B1\u30FC\u30B8jdk.jshell.spi\u306E\n                                         \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n    \n\u3053\u308C\u3089\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n
 
@@ -229,8 +234,8 @@
 help.env =\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u307E\u305F\u306F\u5909\u66F4\u3057\u307E\u3059\u3002\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306F\u3001\u30AF\u30E9\u30B9\u30D1\u30B9\u3001\n\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306A\u3069\u3067\u3059\u3002\n\n/env\n\t\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u793A\u3057\u307E\u3059\n\n/env [-class-path <path>] [-module-path <path>] [-add-modules <modules>] ...\n\t1\u3064\u4EE5\u4E0A\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306B\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\n\t\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u5B9F\u884C\u72B6\u614B\u306F\u65B0\u3057\u3044\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u30EA\u30BB\u30C3\u30C8\u3055\u308C\u3001\n\t\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u30EA\u30D7\u30EC\u30A4\u3055\u308C\u307E\u3059\u3002\u305F\u3060\u3057\u30EA\u30D7\u30EC\u30A4\u306F\u8868\u793A\u3055\u308C\u305A\u3001\n\t\u30A8\u30E9\u30FC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u3053\u308C\u306F\u6B21\u3068\u540C\u3058\u3067\u3059:\n\n\t\t/reload -quiet ...\n\n\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u8A73\u7D30\u306F\u3001\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n\n\t/help context\n\n\t\u4F8B:\n\n\t/env -add-modules com.greetings
 
 help.history.summary = \u5165\u529B\u3057\u305F\u5185\u5BB9\u306E\u5C65\u6B74
-help.history.args =
-help.history =jshell\u30C4\u30FC\u30EB\u306E\u8D77\u52D5\u4EE5\u964D\u5165\u529B\u3055\u308C\u305F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306E\u5C65\u6B74\u3092\u8868\u793A\u3057\u307E\u3059\u3002
+help.history.args = [-all]
+help.history =\u5165\u529B\u3055\u308C\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306E\u5C65\u6B74\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n\n/history\n\tjshell\u30C4\u30FC\u30EB\u306E\u8D77\u52D5\u4EE5\u964D\u5165\u529B\u3055\u308C\u305F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306E\u5C65\u6B74\u3092\u8868\u793A\u3057\u307E\u3059\n\n/history -all\n\t\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3068\u4EE5\u524D\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3067\u5165\u529B\u3055\u308C\u305F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306E\u3059\u3079\u3066\u306E\u5C65\u6B74\u3092\u8868\u793A\u3057\u307E\u3059
 
 help.debug.summary = jshell\u30C4\u30FC\u30EB\u306E\u30C7\u30D0\u30C3\u30B0\u3092\u5207\u308A\u66FF\u3048\u307E\u3059
 help.debug.args = [0][r][g][f][c][d][e]
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -148,6 +148,11 @@
 
 jshell.err.corrupted.stored.startup = \u5B58\u50A8\u7684\u542F\u52A8\u5DF2\u635F\u574F, \u6B63\u5728\u4F7F\u7528\u9ED8\u8BA4\u503C -- {0}
 
+jshell.err.exception.thrown = \u5F02\u5E38\u9519\u8BEF {0}
+jshell.err.exception.thrown.message = \u5F02\u5E38\u9519\u8BEF {0}\uFF1A{1}
+jshell.err.exception.cause = \u539F\u56E0\uFF1A{0}
+jshell.err.exception.cause.message = \u539F\u56E0: {0}\uFF1A {1}
+
 jshell.console.see.synopsis = <\u518D\u6B21\u6309 Tab \u53EF\u67E5\u770B\u63D0\u8981>
 jshell.console.see.full.documentation = <\u518D\u6B21\u6309 Tab \u53EF\u67E5\u770B\u5B8C\u6574\u6587\u6863>
 jshell.console.see.documentation = <\u518D\u6B21\u6309 Tab \u53EF\u67E5\u770B\u6587\u6863>
@@ -172,7 +177,7 @@
 
 jshell.fix.wrong.shortcut =Shift-Tab \u540E\u51FA\u73B0\u610F\u5916\u7684\u5B57\u7B26\u3002\n\u4F7F\u7528 "i" \u8868\u793A\u81EA\u52A8\u5BFC\u5165, \u4F7F\u7528 "v" \u8868\u793A\u53D8\u91CF\u521B\u5EFA, \u4F7F\u7528 "i" \u8868\u793A\u65B9\u6CD5\u521B\u5EFA\u3002\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605:\n /help \u5FEB\u6377\u65B9\u5F0F
 
-help.usage = \u7528\u6CD5\uFF1A   jshell <\u9009\u9879>... <\u52A0\u8F7D\u6587\u4EF6>...\n\u5176\u4E2D\uFF0C\u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC\uFF1A\n    --class-path <\u8DEF\u5F84>   \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n    --module-path <\u8DEF\u5F84>  \u6307\u5B9A\u67E5\u627E\u5E94\u7528\u7A0B\u5E8F\u6A21\u5757\u7684\u4F4D\u7F6E\n    --add-modules <\u6A21\u5757>(,<\u6A21\u5757>)*\n                          \u6307\u5B9A\u8981\u89E3\u6790\u7684\u6A21\u5757\uFF1B\u5982\u679C <\u6A21\u5757> \n                          \u4E3A ALL-MODULE-PATH\uFF0C\u5219\u4E3A\u6A21\u5757\u8DEF\u5F84\u4E2D\u7684\u6240\u6709\u6A21\u5757\n    --startup <\u6587\u4EF6>      \u5BF9\u542F\u52A8\u5B9A\u4E49\u6267\u884C\u5355\u6B21\u66FF\u6362\n    --no-startup          \u4E0D\u8FD0\u884C\u542F\u52A8\u5B9A\u4E49\n    --feedback <\u6A21\u5F0F>     \u6307\u5B9A\u521D\u59CB\u53CD\u9988\u6A21\u5F0F\u3002\u8BE5\u6A21\u5F0F\u53EF\u4EE5\u662F\n                            \u9884\u5B9A\u4E49\u7684\uFF08silent\u3001concise\u3001normal \u6216 verbose\uFF09\uFF0C\n                            \u4E5F\u53EF\u662F\u4EE5\u524D\u7528\u6237\u5B9A\u4E49\u7684\n    -q                    \u65E0\u63D0\u793A\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback concise\n    -s                    \u771F\u6B63\u65E0\u63D0\u793A\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback silent\n    -v                    \u8BE6\u7EC6\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback verbose\n    -J<\u6807\u8BB0>              \u76F4\u63A5\u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FD0\u884C\u65F6\u7CFB\u7EDF\u3002\n                            \u4E3A\u6BCF\u4E2A\u8FD0\u884C\u65F6\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -J\n    -R<\u6807\u8BB0>              \u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FDC\u7A0B\u8FD0\u884C\u65F6\u7CFB\u7EDF\u3002\n                            \u4E3A\u6BCF\u4E2A\u8FDC\u7A0B\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -R\n    -C<\u6807\u8BB0>              \u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u7F16\u8BD1\u5668\u3002\n                            \u4E3A\u6BCF\u4E2A\u7F16\u8BD1\u5668\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -C\n    --version             \u8F93\u51FA\u7248\u672C\u4FE1\u606F\u5E76\u9000\u51FA\n    --show-version        \u8F93\u51FA\u7248\u672C\u4FE1\u606F\u5E76\u7EE7\u7EED\n    --help                \u8F93\u51FA\u6807\u51C6\u9009\u9879\u7684\u6B64\u63D0\u8981\u5E76\u9000\u51FA\n    --help-extra, -X      \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u5E2E\u52A9\u5E76\u9000\u51FA\n\n\u6587\u4EF6\u53C2\u6570\u53EF\u4EE5\u662F\u6587\u4EF6\u540D\uFF0C\u6216\u8005\u662F\u9884\u5B9A\u4E49\u7684\u6587\u4EF6\u540D\u4E4B\u4E00\uFF1ADEFAULT\u3001\nPRINTING \u6216 JAVASE\u3002\n\u52A0\u8F7D\u6587\u4EF6\u4E5F\u53EF\u4EE5\u662F "-"\uFF0C\u7528\u4E8E\u6307\u660E\u6807\u51C6\u8F93\u5165\uFF0C\u6CA1\u6709\u4EA4\u4E92\u5F0F I/O\u3002\n\n\u6709\u5173\u8BC4\u4F30\u4E0A\u4E0B\u6587\u9009\u9879\u7684\u8BE6\u7EC6\u4FE1\u606F\uFF08--class-path\u3001\n--module-path \u548C --add-modules\uFF09\uFF0C\u8BF7\u53C2\u89C1\uFF1A\n\t/help context\n\n\u8DEF\u5F84\u5217\u51FA\u8981\u641C\u7D22\u7684\u76EE\u5F55\u548C\u6863\u6848\u3002\u5BF9\u4E8E Windows\uFF0C\u8BF7\u4F7F\u7528\n\u5206\u53F7 (;) \u6765\u5206\u9694\u8DEF\u5F84\u4E2D\u7684\u9879\u3002\u5728\u5176\u4ED6\u5E73\u53F0\u4E0A\uFF0C\u8BF7\u4F7F\u7528\n\u5192\u53F7 (:) \u6765\u5206\u9694\u5404\u9879\u3002\n
+help.usage = \u7528\u6CD5\uFF1A   jshell <\u9009\u9879>... <\u52A0\u8F7D\u6587\u4EF6>...\n\u5176\u4E2D\uFF0C\u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC\uFF1A\n    --class-path <\u8DEF\u5F84>   \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n    --module-path <\u8DEF\u5F84>  \u6307\u5B9A\u67E5\u627E\u5E94\u7528\u7A0B\u5E8F\u6A21\u5757\u7684\u4F4D\u7F6E\n    --add-modules <\u6A21\u5757>(,<\u6A21\u5757>)*\n                          \u6307\u5B9A\u8981\u89E3\u6790\u7684\u6A21\u5757\uFF1B\u5982\u679C <\u6A21\u5757> \n                          \u4E3A ALL-MODULE-PATH\uFF0C\u5219\u4E3A\u6A21\u5757\u8DEF\u5F84\u4E2D\u7684\u6240\u6709\u6A21\u5757\n    --enable-preview      \u5141\u8BB8\u4EE3\u7801\u4F9D\u8D56\u4E8E\u6B64\u53D1\u884C\u7248\u7684\u9884\u89C8\u529F\u80FD\n    --startup <\u6587\u4EF6>      \u5BF9\u542F\u52A8\u5B9A\u4E49\u6267\u884C\u5355\u6B21\u66FF\u6362\n    --no-startup          \u4E0D\u8FD0\u884C\u542F\u52A8\u5B9A\u4E49\n    --feedback <\u6A21\u5F0F>     \u6307\u5B9A\u521D\u59CB\u53CD\u9988\u6A21\u5F0F\u3002\u8BE5\u6A21\u5F0F\u53EF\u4EE5\u662F\n                            \u9884\u5B9A\u4E49\u7684\uFF08silent\u3001concise\u3001normal \u6216 verbose\uFF09\uFF0C\n                            \u4E5F\u53EF\u662F\u4EE5\u524D\u7528\u6237\u5B9A\u4E49\u7684\n    -q                    \u65E0\u63D0\u793A\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback concise\n    -s                    \u771F\u6B63\u65E0\u63D0\u793A\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback silent\n    -v                    \u8BE6\u7EC6\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback verbose\n    -J<\u6807\u8BB0>              \u76F4\u63A5\u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FD0\u884C\u65F6\u7CFB\u7EDF\u3002\n                            \u4E3A\u6BCF\u4E2A\u8FD0\u884C\u65F6\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -J\n    -R<\u6807\u8BB0>              \u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FDC\u7A0B\u8FD0\u884C\u65F6\u7CFB\u7EDF\u3002\n                            \u4E3A\u6BCF\u4E2A\u8FDC\u7A0B\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -R\n    -C<\u6807\u8BB0>              \u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u7F16\u8BD1\u5668\u3002\n                            \u4E3A\u6BCF\u4E2A\u7F16\u8BD1\u5668\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -C\n    --version             \u8F93\u51FA\u7248\u672C\u4FE1\u606F\u5E76\u9000\u51FA\n    --show-version        \u8F93\u51FA\u7248\u672C\u4FE1\u606F\u5E76\u7EE7\u7EED\n    --help, -?, -h        \u8F93\u51FA\u6807\u51C6\u9009\u9879\u7684\u6B64\u63D0\u8981\u5E76\u9000\u51FA\n    --help-extra, -X      \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u5E2E\u52A9\u5E76\u9000\u51FA\n\n\u6587\u4EF6\u53C2\u6570\u53EF\u4EE5\u662F\u6587\u4EF6\u540D\uFF0C\u6216\u8005\u662F\u9884\u5B9A\u4E49\u7684\u6587\u4EF6\u540D\u4E4B\u4E00\uFF1ADEFAULT\u3001\nPRINTING \u6216 JAVASE\u3002\n\u52A0\u8F7D\u6587\u4EF6\u4E5F\u53EF\u4EE5\u662F "-"\uFF0C\u7528\u4E8E\u6307\u660E\u6807\u51C6\u8F93\u5165\uFF0C\u6CA1\u6709\u4EA4\u4E92\u5F0F I/O\u3002\n\n\u6709\u5173\u8BC4\u4F30\u4E0A\u4E0B\u6587\u9009\u9879\uFF08--class-path\u3001\n--module-path \u548C --add-modules\uFF09\u7684\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u53C2\u89C1\uFF1A\n\t/help context\n\n\u8DEF\u5F84\u5217\u51FA\u8981\u641C\u7D22\u7684\u76EE\u5F55\u548C\u6863\u6848\u3002\u5BF9\u4E8E Windows\uFF0C\u8BF7\u4F7F\u7528\n\u5206\u53F7 (;) \u6765\u5206\u9694\u8DEF\u5F84\u4E2D\u7684\u9879\u3002\u5728\u5176\u4ED6\u5E73\u53F0\u4E0A\uFF0C\u8BF7\u4F7F\u7528\n\u5192\u53F7 (:) \u6765\u5206\u9694\u5404\u9879\u3002\n
 help.usage.x = \    --add-exports <\u6A21\u5757>/<\u7A0B\u5E8F\u5305>      \u6307\u5B9A\u8981\u8003\u8651\u4ECE\u5176\u5B9A\u4E49\u6A21\u5757\u5BFC\u51FA\n                                         \u7684\u7A0B\u5E8F\u5305\n    --execution <\u89C4\u8303>                 \u6307\u5B9A\u66FF\u4EE3\u6267\u884C\u5F15\u64CE\u3002\n                                         \u5176\u4E2D <\u89C4\u8303> \u662F ExecutionControl \u89C4\u8303\u3002\n                                         \u6709\u5173\u89C4\u8303\u7684\u8BED\u6CD5\uFF0C\u8BF7\u53C2\u9605\u7A0B\u5E8F\u5305\n                                         jdk.jshell.spi \u7684\u6587\u6863\n    \n\u8FD9\u4E9B\u9009\u9879\u662F\u975E\u6807\u51C6\u9009\u9879\uFF0C\u5982\u6709\u66F4\u6539\uFF0C\u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
 
 help.list.summary = \u5217\u51FA\u60A8\u952E\u5165\u7684\u6E90
@@ -228,8 +233,8 @@
 help.env =\u67E5\u770B\u6216\u66F4\u6539\u8BC4\u4F30\u4E0A\u4E0B\u6587\u3002\u8BC4\u4F30\u4E0A\u4E0B\u6587\u662F\u7C7B\u8DEF\u5F84\uFF0C\n\u6A21\u5757\u8DEF\u5F84\u7B49\u7B49\u3002\n\n/env\n\t\u663E\u793A\u4F5C\u4E3A\u4E0A\u4E0B\u6587\u9009\u9879\u663E\u793A\u7684\u8BC4\u4F30\u4E0A\u4E0B\u6587\n\n/env [-class-path <\u8DEF\u5F84>] [-module-path <\u8DEF\u5F84>] [-add-modules <\u6A21\u5757>] ...\n\t\u5728\u81F3\u5C11\u8BBE\u7F6E\u4E00\u4E2A\u9009\u9879\u7684\u60C5\u51B5\u4E0B\uFF0C\u8BBE\u7F6E\u8BC4\u4F30\u4E0A\u4E0B\u6587\u3002\u5982\u679C\n\t\u5DF2\u5B9A\u4E49\u7247\u6BB5\uFF0C\u5219\u5C06\u4F7F\u7528\u65B0\u8BC4\u4F30\u4E0A\u4E0B\u6587\u91CD\u7F6E\n\t\u6267\u884C\u72B6\u6001\uFF0C\u5E76\u4E14\u5C06\u91CD\u653E\u7247\u6BB5 -- \u4E0D\u663E\u793A\n\t\u91CD\u653E\uFF0C\u4F46\u662F\u5C06\u663E\u793A\u6240\u6709\u9519\u8BEF\u3002\u8FD9\u7B49\u540C\u4E8E\uFF1A\n\n\t\t/reload -quiet ...\n\n\t\u6709\u5173\u8BC4\u4F30\u4E0A\u4E0B\u6587\u9009\u9879\u7684\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u53C2\u89C1\uFF1A\n\n\t/help context\n\n\u4F8B\u5982\uFF1A\n\n\t/env -add-modules com.greetings
 
 help.history.summary = \u60A8\u952E\u5165\u7684\u5185\u5BB9\u7684\u5386\u53F2\u8BB0\u5F55
-help.history.args =
-help.history =\u663E\u793A\u81EA\u542F\u52A8\u6B64 jshell \u5DE5\u5177\u4EE5\u6765\u8F93\u5165\u7684\u7247\u6BB5\u548C\u547D\u4EE4\u7684\u5386\u53F2\u8BB0\u5F55\u3002
+help.history.args = [-all]
+help.history =\u663E\u793A\u8F93\u5165\u7684\u7247\u6BB5\u548C\u547D\u4EE4\u7684\u5386\u53F2\u8BB0\u5F55\u3002\n\n/history\n\t\u5217\u51FA\u81EA\u542F\u52A8\u6B64 jshell \u5DE5\u5177\u4EE5\u6765\u8F93\u5165\u7684\u7247\u6BB5\u548C\u547D\u4EE4\u7684\u5386\u53F2\u8BB0\u5F55\n\n/history -all\n\t\u5217\u51FA\u6B64\u4F1A\u8BDD\u548C\u4EE5\u524D\u4F1A\u8BDD\u4E2D\u8F93\u5165\u7684\u7247\u6BB5\u548C\u547D\u4EE4\u7684\u5386\u53F2\u8BB0\u5F55
 
 help.debug.summary = \u5207\u6362 jshell \u5DE5\u5177\u7684\u8C03\u8BD5
 help.debug.args = [0][r][g][f][c][d][e]
--- a/src/jdk.rmic/share/classes/sun/rmi/rmic/resources/rmic_ja.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.rmic/share/classes/sun/rmi/rmic/resources/rmic_ja.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,6 +1,6 @@
 #
 #
-# Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #
- 
+
 
 #*****************************************************************************
 #*                    Copyright (c) IBM Corporation 1998                     *
@@ -42,7 +42,7 @@
 # to invoke it.  The value can be a single item or a comma separated
 # list.
 
-generator.args=v1.1,vcompat,v1.2,iiop,idl,xprint
+generator.args=v1.1,vcompat,v1.2,xprint
 
 # For each generator, specify the class to invoke, using the following
 # syntax:
@@ -58,8 +58,6 @@
 generator.class.v1.1=sun.rmi.rmic.RMIGenerator
 generator.class.vcompat=sun.rmi.rmic.RMIGenerator
 generator.class.v1.2=sun.rmi.rmic.RMIGenerator
-generator.class.iiop=sun.rmi.rmic.iiop.StubGenerator
-generator.class.idl=sun.rmi.rmic.iiop.IDLGenerator
 generator.class.xprint=sun.rmi.rmic.iiop.PrintGenerator
 
 # If a generator needs a BatchEnvironment other than
@@ -71,7 +69,7 @@
 generator.env.idl=sun.rmi.rmic.iiop.BatchEnvironment
 generator.env.xprint=sun.rmi.rmic.iiop.BatchEnvironment
 
-rmic.usage=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <class names>\n\n<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002\n -keep      \u4E2D\u9593\u751F\u6210\u3055\u308C\u305F\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u306A\u3044\n -keepgenerated("-keep"\u3068\u540C\u3058)\n -v1.1      1.1\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u7528\u306E\u30B9\u30BF\u30D6/\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u4F5C\u6210\u3059\u308B(\u975E\u63A8\u5968)\n -vcompat   1.1\u30681.2\u306E\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u3068\n                 \u4E92\u63DB\u6027\u306E\u3042\u308B\u30B9\u30BF\u30D6/\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u4F5C\u6210\u3059\u308B(\u975E\u63A8\u5968)\n -v1.2      (\u30C7\u30D5\u30A9\u30EB\u30C8)1.2\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u5C02\u7528\u306E\u30B9\u30BF\u30D6\u3092\u4F5C\u6210\u3059\u308B(\u975E\u63A8\u5968)\n -iiop      IIOP\u7528\u306E\u30B9\u30BF\u30D6\u3092\u4F5C\u6210\u3059\u308B\u3002\u6307\u5B9A\u3059\u308B\u3068<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u3082\u542B\u307E\u308C\u307E\u3059\u3002\n\n            -always       \u6700\u65B0\u306E\u5834\u5408\u3067\u3082\u30B9\u30BF\u30D6\u3092\u4F5C\u6210\u3059\u308B\n            -alwaysgenerate ("-always"\u3068\u540C\u3058)\n            -nolocalstubs   \u540C\u3058\u30D7\u30ED\u30BB\u30B9\u306B\u3064\u3044\u3066\u6700\u9069\u5316\u3055\u308C\u305F\u30B9\u30BF\u30D6\u306F\u4F5C\u6210\u3057\u306A\u3044\n\n -idl      IDL\u3092\u4F5C\u6210\u3059\u308B\u3002\u6307\u5B9A\u3059\u308B\u3068<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u3082\u542B\u307E\u308C\u307E\u3059\u3002\n\n            -noValueMethods valuetypes\u306B\u5BFE\u3057\u3066\u30E1\u30BD\u30C3\u30C9\u3092\u751F\u6210\u3057\u306A\u3044\n            -always       \u6700\u65B0\u306E\u5834\u5408\u3067\u3082IDL\u3092\u751F\u6210\u3059\u308B\n            -alwaysgenerate ("-always"\u3068\u540C\u3058)\n\n -g        \u30C7\u30D0\u30C3\u30B0\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -nowarn     \u8B66\u544A\u3092\u751F\u6210\u3057\u306A\u3044\n -nowrite    \u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u305F\u30AF\u30E9\u30B9\u3092\u30D5\u30A1\u30A4\u30EB\u30FB\u30B7\u30B9\u30C6\u30E0\u306B\u66F8\u304D\u8FBC\u307E\u306A\u3044\n -verbose    \u30B3\u30F3\u30D1\u30A4\u30E9\u306E\u52D5\u4F5C\u306B\u95A2\u3059\u308B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B\n -classpath <path>    \u5165\u529B\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n -bootclasspath<path> \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u5834\u6240\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n -d <directory>      \u751F\u6210\u3055\u308C\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u683C\u7D0D\u3059\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n -J<runtime flag>  java\u30A4\u30F3\u30BF\u30D7\u30EA\u30BF\u306B\u5F15\u6570\u3092\u6E21\u3059\n
+rmic.usage=\u4F7F\u7528\u65B9\u6CD5: {0} <options> <class names>\n\n<options>\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059\u3002\n -keep      \u4E2D\u9593\u751F\u6210\u3055\u308C\u305F\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u306A\u3044\n -keepgenerated("-keep"\u3068\u540C\u3058)\n -v1.1      1.1\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u7528\u306E\u30B9\u30BF\u30D6/\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u4F5C\u6210\u3059\u308B(\u975E\u63A8\u5968)\n -vcompat   1.1\u30681.2\u306E\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u3068\n                 \u4E92\u63DB\u6027\u306E\u3042\u308B\u30B9\u30BF\u30D6/\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u4F5C\u6210\u3059\u308B(\u975E\u63A8\u5968)\n -v1.2      (\u30C7\u30D5\u30A9\u30EB\u30C8)1.2\u30B9\u30BF\u30D6\u30FB\u30D7\u30ED\u30C8\u30B3\u30EB\u7248\u5C02\u7528\u306E\u30B9\u30BF\u30D6\u3092\u4F5C\u6210\u3059\u308B(\u975E\u63A8\u5968)\n -g        \u30C7\u30D0\u30C3\u30B0\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -nowarn     \u8B66\u544A\u3092\u751F\u6210\u3057\u306A\u3044\n -nowrite    \u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u305F\u30AF\u30E9\u30B9\u3092\u30D5\u30A1\u30A4\u30EB\u30FB\u30B7\u30B9\u30C6\u30E0\u306B\u66F8\u304D\u8FBC\u307E\u306A\u3044\n -verbose    \u30B3\u30F3\u30D1\u30A4\u30E9\u306E\u52D5\u4F5C\u306B\u95A2\u3059\u308B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B\n -classpath <path>    \u5165\u529B\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n -bootclasspath<path> \u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u5834\u6240\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n -d <directory>      \u751F\u6210\u3055\u308C\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u683C\u7D0D\u3059\u308B\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B\n -J<runtime flag>  java\u30A4\u30F3\u30BF\u30D7\u30EA\u30BF\u306B\u5F15\u6570\u3092\u6E21\u3059\n
 
 #
 # Generic Messages
@@ -110,42 +108,4 @@
 rmic.must.implement.remote.directly=\u30B9\u30BF\u30D6\u3092\u5FC5\u8981\u3068\u3059\u308B\u306E\u306Fjava.rmi.Remote\u3092\u62E1\u5F35\u3059\u308B\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u76F4\u63A5\u5B9F\u88C5\u3059\u308B\u30AF\u30E9\u30B9\u306E\u307F\u3067\u3059\u3002\u30AF\u30E9\u30B9{0}\u306F\u30EA\u30E2\u30FC\u30C8\u30FB\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u76F4\u63A5\u306B\u306F\u5B9F\u88C5\u3057\u307E\u305B\u3093\u3002
 rmic.must.throw.remoteexception={0}\u306F\u4E0D\u6B63\u306A\u30EA\u30E2\u30FC\u30C8\u30FB\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002\u30E1\u30BD\u30C3\u30C9{1}\u306Fjava.rmi.RemoteException\u3092\u30B9\u30ED\u30FC\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
 rmic.must.only.throw.exception=\u30E1\u30BD\u30C3\u30C9{0}\u306F{1}\u3092\u30B9\u30ED\u30FC\u3059\u308B\u306E\u3067\u4E0D\u6B63\u306A\u30EA\u30E2\u30FC\u30C8\u30FB\u30E1\u30BD\u30C3\u30C9\u5B9F\u88C5\u3067\u3059\u3002\u30EA\u30E2\u30FC\u30C8\u30FB\u30E1\u30BD\u30C3\u30C9\u306E\u5B9F\u88C5\u304C\u30B9\u30ED\u30FC\u3059\u308B\u306E\u306Fjava.lang.Exception\u304B\u305D\u306E\u30B5\u30D6\u30AF\u30E9\u30B9\u306E\u307F\u3067\u3059\u3002
-warn.rmic.tie.found=IIOP "tie"\u306F\u30AF\u30E9\u30B9{0}\u306E\u305F\u3081\u306B\u3042\u308A\u307E\u3059\u3002\n {1}\nPortableRemoteObject.exportObject\u3092\u4F7F\u7528\u3059\u308B\u5834\u5408\u306F\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u524A\u9664\u3057\u306A\u3044\u3068\u3001\u30B5\u30FC\u30D0\u30FC\u30FB\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306FJRMP\u3067\u306A\u304FIIOP\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u307E\u3059\u3002
 rmic.jrmp.stubs.deprecated=\u8B66\u544A: JRMP\u306E\u30B9\u30B1\u30EB\u30C8\u30F3\u3068static\u30B9\u30BF\u30D6\u306E\u751F\u6210\u3068\u4F7F\u7528\u306F\n\u975E\u63A8\u5968\u3067\u3059\u3002\u30B9\u30B1\u30EB\u30C8\u30F3\u306F\u4E0D\u8981\u3067\u3001static\u30B9\u30BF\u30D6\u306F\n\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u308B\u30B9\u30BF\u30D6\u306B\u5DEE\u3057\u66FF\u3048\u3089\u308C\u307E\u3057\u305F\u3002\u30E6\u30FC\u30B6\u30FC\u306F\n\u30B9\u30B1\u30EB\u30C8\u30F3\u3068static\u30B9\u30BF\u30D6\u3092\u751F\u6210\u3059\u308B\u305F\u3081\u306B{0}\u3092\u4F7F\u7528\u305B\u305A\u306B\u79FB\u884C\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\njava.rmi.server.UnicastRemoteObject\u306B\u95A2\u3059\u308B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-
-#
-# RMI-IIOP Messages
-#
-
-rmic.generated=[{1}\u30DF\u30EA\u79D2\u3067{0}\u3092\u751F\u6210]
-rmic.previously.generated=[\u4EE5\u524D\u306B\u751F\u6210\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB{0}\u306F\u6700\u65B0\u3067\u3059]
-warn.rmic.member.not.mapped=\u30AF\u30E9\u30B9{1}\u306E\u30C7\u30FC\u30BF\u30FB\u30E1\u30F3\u30D0\u30FC{0}\u306FIDL\u306B\u30DE\u30C3\u30D7\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002
-
-rmic.iiop.constraint.1={0}\u306F\u4E0D\u6B63\u306A\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002java.rmi.Remote\u304B\u3089\u306F\u7D99\u627F\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.2=\u30AF\u30E9\u30B9{0}\u306EserialPersistentFields\u914D\u5217\u306F\u4E0D\u6B63\u3067\u3059\u3002\u5B58\u5728\u3057\u306A\u3044\u30E1\u30F3\u30D0\u30FC\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002
-rmic.iiop.constraint.3={0}\u306F\u4E0D\u6B63\u306A\u30EA\u30E2\u30FC\u30C8\u30FB\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002{1}\u306F\u6B63\u3057\u3044\u30D7\u30EA\u30DF\u30C6\u30A3\u30D6\u307E\u305F\u306FString\u5B9A\u6570\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.4={0}\u306F\u4E0D\u6B63\u306A\u5024\u3067\u3059\u3002serialPersistentFields\u306Fprivate static final\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
-rmic.iiop.constraint.5={0}\u306F\u4E0D\u6B63\u306A\u30EA\u30E2\u30FC\u30C8\u30FB\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002\u30E1\u30BD\u30C3\u30C9{1}\u306FRemoteException\u307E\u305F\u306FRemoteException\u306E\u30B9\u30FC\u30D1\u30FC\u30AF\u30E9\u30B9\u3092\u30B9\u30ED\u30FC\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
-rmic.iiop.constraint.6={0}\u306F\u4E0D\u6B63\u306A\u30EA\u30E2\u30FC\u30C8\u30FB\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002\u7D99\u627F\u3055\u308C\u305F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{1}\u3082\u4E21\u65B9\u30E1\u30BD\u30C3\u30C9{2}\u3092\u5BA3\u8A00\u3057\u3066\u3044\u307E\u3059\u3002
-rmic.iiop.constraint.7={0}\u306F\u4E0D\u6B63\u306A\u578B\u3067\u3059\u3002{1}\u306F\u7279\u5225\u306A\u5834\u5408\u306B\u306E\u307F\u7570\u306A\u308A\u307E\u3059\u3002
-rmic.iiop.constraint.8={0}\u306F\u4E0D\u6B63\u306A\u30EA\u30E2\u30FC\u30C8\u5B9F\u88C5\u3067\u3059\u3002\u30EA\u30E2\u30FC\u30C8\u30FB\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u6301\u3063\u3066\u3044\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.9=\u30AF\u30E9\u30B9{1}\u306EserialPersistentFields\u914D\u5217\u30E1\u30F3\u30D0\u30FC{0}\u306F\u4E0D\u6B63\u3067\u3059\u3002\u578B\u304C\u5BA3\u8A00\u3055\u308C\u305F\u30E1\u30F3\u30D0\u30FC\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.10={0}\u306F\u4E0D\u6B63\u306A\u5024\u3067\u3059\u3002java.rmi.Remote\u3092\u5B9F\u88C5\u3057\u307E\u3059\u3002
-rmic.iiop.constraint.11={0}\u306F\u4E0D\u6B63\u306A\u5024\u3067\u3059\u3002java.io.Serializable\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.12={0}\u306F\u4E0D\u6B63\u306A\u5024\u3067\u3059\u3002\u4E0D\u6B63\u306A\u89AA\u3067\u3059\u3002
-rmic.iiop.constraint.13={0}\u306F\u4E0D\u6B63\u306A\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002\u30E1\u30BD\u30C3\u30C9{1}\u306Eidl\u540D\u304C\u4ED6\u306E\u30E1\u30BD\u30C3\u30C9\u3068\u7AF6\u5408\u3057\u307E\u3059\u3002
-rmic.iiop.constraint.14={0}\u306F\u4E0D\u6B63\u306Aabstract\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.15={0}\u306F\u4E0D\u6B63\u306Aabstract\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002java.rmi.Remote\u3092\u5B9F\u88C5\u3057\u3066\u3044\u307E\u3059\u3002
-rmic.iiop.constraint.16={0}\u306F\u4E0D\u6B63\u306A\u30EA\u30E2\u30FC\u30C8\u30FB\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.17={0}\u306F\u4E0D\u6B63\u306A\u30EA\u30E2\u30FC\u30C8\u5B9F\u88C5\u3067\u3059\u3002\u30AF\u30E9\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.18={0}\u306F\u4E0D\u6B63\u306A\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002\u30E1\u30BD\u30C3\u30C9{1}\u306Forg.omg.CORBA.portable.IDLEntity\u3092\u5B9F\u88C5\u3059\u308B\u4F8B\u5916\u3092\u6E21\u3057\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.19={0}\u306F\u4E0D\u6B63\u306A\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3067\u3059\u3002\u5B9A\u6570{1}\u306Eidl\u540D\u304C\u4ED6\u306E\u5B9A\u6570\u3068\u7AF6\u5408\u3057\u307E\u3059\u3002
-rmic.iiop.constraint.20={0}\u306F\u4E0D\u6B63\u306A\u30AF\u30E9\u30B9\u3067\u3059\u3002\u30E1\u30F3\u30D0\u30FC{1}\u306Eidl\u540D\u304C\u4ED6\u306E\u30E1\u30F3\u30D0\u30FC\u3068\u7AF6\u5408\u3057\u307E\u3059\u3002
-rmic.iiop.constraint.21={0}\u306F\u30EA\u30E2\u30FC\u30C8\u5B9F\u88C5\u30AF\u30E9\u30B9\u3067\u3042\u308A\u3001{1}\u306E\u30E1\u30BD\u30C3\u30C9\u5F15\u6570\u307E\u305F\u306F\u623B\u308A\u5024\u306E\u578B\u3068\u3057\u3066\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.22=\u5185\u90E8\u969C\u5BB3: (\u30E1\u30BD\u30C3\u30C9)\u4F8B\u5916{0}\u306F\u30AF\u30E9\u30B9\u578B\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.23=\u5185\u90E8\u969C\u5BB3: (\u30E1\u30BD\u30C3\u30C9)\u306F{0}\u306Enull\u30DD\u30A4\u30F3\u30BF\u4F8B\u5916\u3092\u6355\u6349\u3057\u307E\u3057\u305F\u3002
-rmic.iiop.constraint.24=\u30AF\u30E9\u30B9{0}\u306F\u4E0D\u6B63\u306A\u623B\u308A\u5024\u306E\u578B\u3092\u542B\u3093\u3067\u3044\u307E\u3059\u3002
-rmic.iiop.constraint.25=\u30AF\u30E9\u30B9{0}\u306F\u30E1\u30BD\u30C3\u30C9{1}\u306B\u4E0D\u6B63\u306A\u5F15\u6570\u578B\u3092\u542B\u3093\u3067\u3044\u307E\u3059\u3002
-rmic.iiop.constraint.26={0}\u3092\u30B3\u30F3\u30D1\u30A4\u30EB\u3067\u304D\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.27=\u30AF\u30E9\u30B9{0}\u3092\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093\u3002
-rmic.iiop.constraint.28={0}\u306F\u30EA\u30E2\u30FC\u30C8\u5B9F\u88C5\u30AF\u30E9\u30B9\u3067\u3042\u308A\u3001{1}\u306E\u30C7\u30FC\u30BF\u30FB\u30E1\u30F3\u30D0\u30FC\u3068\u3057\u3066\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
--- a/src/jdk.rmic/share/classes/sun/rmi/rmic/resources/rmic_zh_CN.properties	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/jdk.rmic/share/classes/sun/rmi/rmic/resources/rmic_zh_CN.properties	Fri Jul 27 12:16:01 2018 +0100
@@ -1,6 +1,6 @@
 #
 #
-# Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #
- 
+
 
 #*****************************************************************************
 #*                    Copyright (c) IBM Corporation 1998                     *
@@ -42,7 +42,7 @@
 # to invoke it.  The value can be a single item or a comma separated
 # list.
 
-generator.args=v1.1,vcompat,v1.2,iiop,idl,xprint
+generator.args=v1.1,vcompat,v1.2,xprint
 
 # For each generator, specify the class to invoke, using the following
 # syntax:
@@ -58,8 +58,6 @@
 generator.class.v1.1=sun.rmi.rmic.RMIGenerator
 generator.class.vcompat=sun.rmi.rmic.RMIGenerator
 generator.class.v1.2=sun.rmi.rmic.RMIGenerator
-generator.class.iiop=sun.rmi.rmic.iiop.StubGenerator
-generator.class.idl=sun.rmi.rmic.iiop.IDLGenerator
 generator.class.xprint=sun.rmi.rmic.iiop.PrintGenerator
 
 # If a generator needs a BatchEnvironment other than
@@ -71,7 +69,7 @@
 generator.env.idl=sun.rmi.rmic.iiop.BatchEnvironment
 generator.env.xprint=sun.rmi.rmic.iiop.BatchEnvironment
 
-rmic.usage=\u7528\u6CD5: {0} <options> <class names>\n\n\u5176\u4E2D <options> \u5305\u62EC:\n  -keep          \u4E0D\u5220\u9664\u4E34\u65F6\u751F\u6210\u7684\u6E90\u6587\u4EF6\n  -keepgenerated (\u4E0E "-keep" \u76F8\u540C)\n  -v1.1          \u521B\u5EFA 1.1 \u5B58\u6839\u534F\u8BAE\u7248\u672C\u7684\u5B58\u6839/\u9AA8\u67B6 (\u5DF2\u8FC7\u65F6)\n  -vcompat       \u521B\u5EFA\u4E0E 1.1 \u548C 1.2 \u5B58\u6839\u534F\u8BAE\u7248\u672C\n                           \u90FD\u517C\u5BB9\u7684\u5B58\u6839/\u9AA8\u67B6 (\u5DF2\u8FC7\u65F6)\n  -v1.2          (\u9ED8\u8BA4\u503C) \u4EC5\u521B\u5EFA 1.2 \u5B58\u6839\u534F\u8BAE\u7248\u672C\u7684\u5B58\u6839 (\u5DF2\u8FC7\u65F6)\n  -iiop          \u521B\u5EFA IIOP \u7684\u5B58\u6839\u3002\u5982\u679C\u63D0\u4F9B, <options> \u8FD8\u5305\u62EC:\n\n                   -always           \u521B\u5EFA\u5B58\u6839 (\u5373\u4F7F\u5F53\u524D\u663E\u793A)\n                   -alwaysgenerate   (\u4E0E "-always" \u76F8\u540C)\n                   -nolocalstubs     \u4E0D\u521B\u5EFA\u5BF9\u76F8\u540C\u8FDB\u7A0B\u4F18\u5316\u7684\u5B58\u6839\n\n  -idl           \u521B\u5EFA IDL\u3002\u5982\u679C\u63D0\u4F9B, <options> \u8FD8\u5305\u62EC:\n\n                   -noValueMethods   \u4E0D\u4E3A\u503C\u7C7B\u578B\u751F\u6210\u65B9\u6CD5\n                   -always           \u521B\u5EFA IDL (\u5373\u4F7F\u5F53\u524D\u663E\u793A)\n                   -alwaysgenerate   (\u4E0E "-always" \u76F8\u540C)\n\n  -g             \u751F\u6210\u8C03\u8BD5\u4FE1\u606F\n  -nowarn        \u4E0D\u751F\u6210\u4EFB\u4F55\u8B66\u544A\n  -nowrite       \u4E0D\u5C06\u7F16\u8BD1\u7684\u7C7B\u5199\u5165\u6587\u4EF6\u7CFB\u7EDF\n  -verbose       \u8F93\u51FA\u6709\u5173\u7F16\u8BD1\u5668\u6B63\u5728\u6267\u884C\u7684\u64CD\u4F5C\u7684\u6D88\u606F\n  -classpath <path>      \u6307\u5B9A\u67E5\u627E\u8F93\u5165\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -bootclasspath <path>  \u8986\u76D6\u5F15\u5BFC\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -d <directory>         \u6307\u5B9A\u653E\u7F6E\u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -J<runtime flag>       \u5C06\u53C2\u6570\u4F20\u9012\u7ED9 java \u89E3\u91CA\u5668\n
+rmic.usage=\u7528\u6CD5\uFF1A{0} <\u9009\u9879> <\u7C7B\u540D>\n\n\u5176\u4E2D <\u9009\u9879> \u5305\u62EC\uFF1A\n  -keep          \u4E0D\u5220\u9664\u4E34\u65F6\u751F\u6210\u7684\u6E90\u6587\u4EF6\n  -keepgenerated\uFF08\u4E0E "-keep" \u76F8\u540C\uFF09\n  -v1.1          \u521B\u5EFA 1.1 \u5B58\u6839\u534F\u8BAE\u7248\u672C\u7684\u5B58\u6839/\u9AA8\u67B6\uFF08\u5DF2\u8FC7\u65F6\uFF09\n  -vcompat       \u521B\u5EFA\u4E0E 1.1 \u548C 1.2 \u5B58\u6839\u534F\u8BAE\u7248\u672C\n                           \u90FD\u517C\u5BB9\u7684\u5B58\u6839/\u9AA8\u67B6\uFF08\u5DF2\u8FC7\u65F6\uFF09\n  -v1.2         \uFF08\u9ED8\u8BA4\u503C\uFF09\u4EC5\u521B\u5EFA 1.2 \u5B58\u6839\u534F\u8BAE\u7248\u672C\u7684\u5B58\u6839\uFF08\u5DF2\u8FC7\u65F6\uFF09\n  -g             \u751F\u6210\u8C03\u8BD5\u4FE1\u606F\n  -nowarn        \u4E0D\u751F\u6210\u4EFB\u4F55\u8B66\u544A\n  -nowrite       \u4E0D\u5C06\u7F16\u8BD1\u7684\u7C7B\u5199\u5165\u6587\u4EF6\u7CFB\u7EDF\n  -verbose       \u8F93\u51FA\u6709\u5173\u7F16\u8BD1\u5668\u6B63\u5728\u6267\u884C\u7684\u64CD\u4F5C\u7684\u6D88\u606F\n  -classpath <\u8DEF\u5F84>      \u6307\u5B9A\u67E5\u627E\u8F93\u5165\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -bootclasspath <\u8DEF\u5F84>  \u8986\u76D6\u5F15\u5BFC\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -d <\u76EE\u5F55>         \u6307\u5B9A\u653E\u7F6E\u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n  -J<\u8FD0\u884C\u65F6\u6807\u8BB0>       \u5C06\u53C2\u6570\u4F20\u9012\u7ED9 java \u89E3\u91CA\u5668\n
 
 #
 # Generic Messages
@@ -110,42 +108,4 @@
 rmic.must.implement.remote.directly=\u4EC5\u76F4\u63A5\u5B9E\u73B0\u6269\u5C55 java.rmi.Remote \u7684\u63A5\u53E3\u7684\u7C7B\u9700\u8981\u5B58\u6839; \u7C7B{0}\u4E0D\u76F4\u63A5\u5B9E\u73B0\u8FDC\u7A0B\u63A5\u53E3\u3002
 rmic.must.throw.remoteexception={0}\u4E0D\u662F\u6709\u6548\u8FDC\u7A0B\u63A5\u53E3: \u65B9\u6CD5{1}\u5FC5\u987B\u629B\u51FA java.rmi.RemoteException\u3002
 rmic.must.only.throw.exception=\u65B9\u6CD5{0}\u4E0D\u662F\u6709\u6548\u7684\u8FDC\u7A0B\u65B9\u6CD5\u5B9E\u73B0, \u56E0\u4E3A\u5B83\u629B\u51FA\u4E86{1}; \u8FDC\u7A0B\u65B9\u6CD5\u5B9E\u73B0\u53EA\u53EF\u80FD\u629B\u51FA java.lang.Exception \u6216\u5176\u5B50\u7C7B\u3002
-warn.rmic.tie.found=\u5BF9\u4E8E\u7C7B{0}, \u5B58\u5728 IIOP "tie":\n  {1}\n\u5982\u679C\u4F7F\u7528 PortableRemoteObject.exportObject, \u5219\u5E94\u8BE5\u5220\u9664\u6B64\u6587\u4EF6, \u5426\u5219, \u60A8\u7684\u670D\u52A1\u5668\u5BF9\u8C61\u5C06\u4F1A\u5BFC\u51FA\u5230 IIOP \u800C\u975E JRMP\u3002
 rmic.jrmp.stubs.deprecated=\u8B66\u544A: \u4E3A JRMP \u751F\u6210\u548C\u4F7F\u7528\u9AA8\u67B6\u53CA\u9759\u6001\u5B58\u6839\n\u5DF2\u8FC7\u65F6\u3002\u9AA8\u67B6\u4E0D\u518D\u5FC5\u8981, \u800C\u9759\u6001\u5B58\u6839\n\u5DF2\u7531\u52A8\u6001\u751F\u6210\u7684\u5B58\u6839\u53D6\u4EE3\u3002\u5EFA\u8BAE\u7528\u6237\n\u4E0D\u518D\u4F7F\u7528{0}\u6765\u751F\u6210\u9AA8\u67B6\u548C\u9759\u6001\u5B58\u6839\u3002\n\u8BF7\u53C2\u9605 java.rmi.server.UnicastRemoteObject \u7684\u6587\u6863\u3002
-
-#
-# RMI-IIOP Messages
-#
-
-rmic.generated=[\u5728 {1} \u6BEB\u79D2\u5185\u751F\u6210{0}]
-rmic.previously.generated=[\u4EE5\u524D\u751F\u6210\u7684\u6587\u4EF6{0}\u4E3A\u5F53\u524D\u6587\u4EF6]
-warn.rmic.member.not.mapped=\u7C7B{1}\u7684\u6570\u636E\u6210\u5458{0}\u672A\u6620\u5C04\u5230 IDL\u3002
-
-rmic.iiop.constraint.1={0}\u4E0D\u662F\u6709\u6548\u63A5\u53E3: \u6CA1\u6709\u4ECE java.rmi.Remote \u7EE7\u627F\u3002
-rmic.iiop.constraint.2=\u7C7B{0}\u7684 serialPersistentFields \u6570\u7EC4\u65E0\u6548: \u5F15\u7528\u4E86\u4E0D\u5B58\u5728\u7684\u6210\u5458\u3002
-rmic.iiop.constraint.3={0}\u4E0D\u662F\u6709\u6548\u8FDC\u7A0B\u63A5\u53E3: {1}\u4E0D\u662F\u6709\u6548\u7684\u57FA\u5143\u6216\u5B57\u7B26\u4E32\u5E38\u91CF\u3002
-rmic.iiop.constraint.4={0}\u4E0D\u662F\u6709\u6548\u503C: serialPersistentFields \u5FC5\u987B\u4E3A\u4E13\u7528\u9759\u6001\u6700\u7EC8\u7C7B\u578B\u3002
-rmic.iiop.constraint.5={0}\u4E0D\u662F\u6709\u6548\u8FDC\u7A0B\u63A5\u53E3: \u65B9\u6CD5{1}\u5FC5\u987B\u629B\u51FA RemoteException \u6216 RemoteException \u7684\u8D85\u7C7B\u3002
-rmic.iiop.constraint.6={0}\u4E0D\u662F\u6709\u6548\u8FDC\u7A0B\u63A5\u53E3: \u7EE7\u627F\u7684\u63A5\u53E3{1}\u5747\u58F0\u660E\u4E86\u65B9\u6CD5{2}\u3002
-rmic.iiop.constraint.7={0}\u4E0D\u662F\u6709\u6548\u7C7B\u578B: {1}\u4EC5\u5728\u5927\u5C0F\u5199\u4E0A\u4E0D\u540C\u3002
-rmic.iiop.constraint.8={0}\u4E0D\u662F\u6709\u6548\u8FDC\u7A0B\u5B9E\u73B0: \u4E0D\u5177\u6709\u8FDC\u7A0B\u63A5\u53E3\u3002
-rmic.iiop.constraint.9=\u7C7B{1}\u7684 serialPersistentFields \u6570\u7EC4\u6210\u5458{0}\u65E0\u6548: \u7C7B\u578B\u4E0E\u58F0\u660E\u7684\u6210\u5458\u4E0D\u5339\u914D\u3002
-rmic.iiop.constraint.10={0}\u4E0D\u662F\u6709\u6548\u503C: \u5B9E\u73B0 java.rmi.Remote\u3002
-rmic.iiop.constraint.11={0}\u4E0D\u662F\u6709\u6548\u503C: \u4E0D\u5B9E\u73B0 java.io.Serializable\u3002
-rmic.iiop.constraint.12={0}\u4E0D\u662F\u6709\u6548\u503C: \u7236\u7EA7\u65E0\u6548\u3002
-rmic.iiop.constraint.13={0}\u4E0D\u662F\u6709\u6548\u63A5\u53E3: \u65B9\u6CD5{1}\u7684 idl \u540D\u79F0\u4E0E\u5176\u4ED6\u65B9\u6CD5\u51B2\u7A81\u3002
-rmic.iiop.constraint.14={0}\u4E0D\u662F\u6709\u6548\u62BD\u8C61\u63A5\u53E3: \u4E0D\u662F\u63A5\u53E3\u3002
-rmic.iiop.constraint.15={0}\u4E0D\u662F\u6709\u6548\u62BD\u8C61\u63A5\u53E3: \u5B9E\u73B0 java.rmi.Remote\u3002
-rmic.iiop.constraint.16={0}\u4E0D\u662F\u6709\u6548\u8FDC\u7A0B\u63A5\u53E3: \u4E0D\u662F\u63A5\u53E3\u3002
-rmic.iiop.constraint.17={0}\u4E0D\u662F\u6709\u6548\u8FDC\u7A0B\u5B9E\u73B0: \u4E0D\u662F\u7C7B\u3002
-rmic.iiop.constraint.18={0}\u4E0D\u662F\u6709\u6548\u63A5\u53E3: \u65B9\u6CD5{1}\u4E0D\u80FD\u4F20\u9012\u5B9E\u73B0 org.omg.CORBA.portable.IDLEntity \u7684\u5F02\u5E38\u9519\u8BEF\u3002
-rmic.iiop.constraint.19={0}\u4E0D\u662F\u6709\u6548\u63A5\u53E3: \u5E38\u91CF{1}\u7684 idl \u540D\u79F0\u4E0E\u5176\u4ED6\u5E38\u91CF\u51B2\u7A81\u3002
-rmic.iiop.constraint.20={0}\u4E0D\u662F\u6709\u6548\u7C7B: \u6210\u5458{1}\u7684 idl \u540D\u79F0\u4E0E\u5176\u4ED6\u6210\u5458\u51B2\u7A81\u3002
-rmic.iiop.constraint.21={0}\u662F\u8FDC\u7A0B\u5B9E\u73B0\u7C7B\u5E76\u4E14\u4E0D\u80FD\u7528\u4F5C{1}\u4E2D\u7684\u65B9\u6CD5\u53C2\u6570\u6216\u8FD4\u56DE\u7C7B\u578B\u3002
-rmic.iiop.constraint.22=\u5185\u90E8\u5931\u8D25: (\u65B9\u6CD5) \u5F02\u5E38\u9519\u8BEF{0}\u4E0D\u662F\u7C7B\u7C7B\u578B\u3002
-rmic.iiop.constraint.23=\u5185\u90E8\u5931\u8D25: (\u65B9\u6CD5) \u6355\u83B7\u5230{0}\u7684\u7A7A\u503C\u6307\u9488\u5F02\u5E38\u9519\u8BEF\u3002
-rmic.iiop.constraint.24=\u7C7B{0}\u5305\u542B\u65E0\u6548\u8FD4\u56DE\u7C7B\u578B\u3002
-rmic.iiop.constraint.25=\u7C7B{0}\u5305\u542B\u65B9\u6CD5{1}\u4E2D\u7684\u65E0\u6548\u53C2\u6570\u7C7B\u578B\u3002
-rmic.iiop.constraint.26=\u65E0\u6CD5\u7F16\u8BD1{0}\u3002
-rmic.iiop.constraint.27=\u65E0\u6CD5\u52A0\u8F7D\u7C7B{0}\u3002
-rmic.iiop.constraint.28={0}\u662F\u8FDC\u7A0B\u5B9E\u73B0\u7C7B\u5E76\u4E14\u65E0\u6CD5\u7528\u4F5C{1}\u4E2D\u7684\u6570\u636E\u6210\u5458\u3002
--- a/src/utils/hsdis/Makefile	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/utils/hsdis/Makefile	Fri Jul 27 12:16:01 2018 +0100
@@ -2,19 +2,41 @@
 # Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
+# The Universal Permissive License (UPL), Version 1.0
+#
+# Subject to the condition set forth below, permission is hereby granted to
+# any person obtaining a copy of this software, associated documentation
+# and/or data (collectively the "Software"), free of charge and under any
+# and all copyright rights in the Software, and any and all patent rights
+# owned or freely licensable by each licensor hereunder covering either (i)
+# the unmodified Software as contributed to or provided by such licensor,
+# or (ii) the Larger Works (as defined below), to deal in both
+#
+# (a) the Software, and
+#
+# (b) any piece of software and/or hardware listed in the lrgrwrks.txt file
+# if one is included with the Software (each a “Larger Work” to which the
+# Software is contributed by such licensors),
 #
-# 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).
+# without restriction, including without limitation the rights to copy,
+# create derivative works of, display, perform, and distribute the Software
+# and make, use, sell, offer for sale, import, export, have made, and have
+# sold the Software and the Larger Work(s), and to sublicense the foregoing
+# rights on either these or other terms.
+#
+# This license is subject to the following condition:
 #
-# 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.
+# The above copyright notice and either this complete permission notice or
+# at a minimum a reference to the UPL must be included in all copies or
+# substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+# NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+# USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 # or visit www.oracle.com if you need additional information or have any
--- a/src/utils/hsdis/README	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/utils/hsdis/README	Fri Jul 27 12:16:01 2018 +0100
@@ -1,20 +1,42 @@
 Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation.
-  
-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.
-  
+The Universal Permissive License (UPL), Version 1.0
+
+Subject to the condition set forth below, permission is hereby granted to
+any person obtaining a copy of this software, associated documentation
+and/or data (collectively the "Software"), free of charge and under any
+and all copyright rights in the Software, and any and all patent rights
+owned or freely licensable by each licensor hereunder covering either (i)
+the unmodified Software as contributed to or provided by such licensor,
+or (ii) the Larger Works (as defined below), to deal in both
+
+(a) the Software, and
+
+(b) any piece of software and/or hardware listed in the lrgrwrks.txt file
+if one is included with the Software (each a “Larger Work” to which the
+Software is contributed by such licensors),
+
+without restriction, including without limitation the rights to copy,
+create derivative works of, display, perform, and distribute the Software
+and make, use, sell, offer for sale, import, export, have made, and have
+sold the Software and the Larger Work(s), and to sublicense the foregoing
+rights on either these or other terms.
+
+This license is subject to the following condition:
+
+The above copyright notice and either this complete permission notice or
+at a minimum a reference to the UPL must be included in all copies or
+substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
 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.
--- a/src/utils/hsdis/hsdis-demo.c	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/utils/hsdis/hsdis-demo.c	Fri Jul 27 12:16:01 2018 +0100
@@ -2,19 +2,41 @@
  * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * The Universal Permissive License (UPL), Version 1.0
+ *
+ * Subject to the condition set forth below, permission is hereby granted to
+ * any person obtaining a copy of this software, associated documentation
+ * and/or data (collectively the "Software"), free of charge and under any
+ * and all copyright rights in the Software, and any and all patent rights
+ * owned or freely licensable by each licensor hereunder covering either (i)
+ * the unmodified Software as contributed to or provided by such licensor,
+ * or (ii) the Larger Works (as defined below), to deal in both
+ *
+ * (a) the Software, and
+ *
+ * (b) any piece of software and/or hardware listed in the lrgrwrks.txt file
+ * if one is included with the Software (each a “Larger Work” to which the
+ * Software is contributed by such licensors),
  *
- * 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).
+ * without restriction, including without limitation the rights to copy,
+ * create derivative works of, display, perform, and distribute the Software
+ * and make, use, sell, offer for sale, import, export, have made, and have
+ * sold the Software and the Larger Work(s), and to sublicense the foregoing
+ * rights on either these or other terms.
+ *
+ * This license is subject to the following condition:
  *
- * 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.
+ * The above copyright notice and either this complete permission notice or
+ * at a minimum a reference to the UPL must be included in all copies or
+ * substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+ * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ * USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  * or visit www.oracle.com if you need additional information or have any
--- a/src/utils/hsdis/hsdis.c	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/utils/hsdis/hsdis.c	Fri Jul 27 12:16:01 2018 +0100
@@ -2,19 +2,41 @@
  * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * The Universal Permissive License (UPL), Version 1.0
+ *
+ * Subject to the condition set forth below, permission is hereby granted to
+ * any person obtaining a copy of this software, associated documentation
+ * and/or data (collectively the "Software"), free of charge and under any
+ * and all copyright rights in the Software, and any and all patent rights
+ * owned or freely licensable by each licensor hereunder covering either (i)
+ * the unmodified Software as contributed to or provided by such licensor,
+ * or (ii) the Larger Works (as defined below), to deal in both
+ *
+ * (a) the Software, and
+ *
+ * (b) any piece of software and/or hardware listed in the lrgrwrks.txt file
+ * if one is included with the Software (each a “Larger Work” to which the
+ * Software is contributed by such licensors),
  *
- * 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).
+ * without restriction, including without limitation the rights to copy,
+ * create derivative works of, display, perform, and distribute the Software
+ * and make, use, sell, offer for sale, import, export, have made, and have
+ * sold the Software and the Larger Work(s), and to sublicense the foregoing
+ * rights on either these or other terms.
+ *
+ * This license is subject to the following condition:
  *
- * 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.
+ * The above copyright notice and either this complete permission notice or
+ * at a minimum a reference to the UPL must be included in all copies or
+ * substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+ * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ * USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  * or visit www.oracle.com if you need additional information or have any
--- a/src/utils/hsdis/hsdis.h	Tue Jul 24 10:07:26 2018 +0100
+++ b/src/utils/hsdis/hsdis.h	Fri Jul 27 12:16:01 2018 +0100
@@ -2,19 +2,41 @@
  * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * The Universal Permissive License (UPL), Version 1.0
+ *
+ * Subject to the condition set forth below, permission is hereby granted to
+ * any person obtaining a copy of this software, associated documentation
+ * and/or data (collectively the "Software"), free of charge and under any
+ * and all copyright rights in the Software, and any and all patent rights
+ * owned or freely licensable by each licensor hereunder covering either (i)
+ * the unmodified Software as contributed to or provided by such licensor,
+ * or (ii) the Larger Works (as defined below), to deal in both
+ *
+ * (a) the Software, and
+ *
+ * (b) any piece of software and/or hardware listed in the lrgrwrks.txt file
+ * if one is included with the Software (each a “Larger Work” to which the
+ * Software is contributed by such licensors),
  *
- * 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).
+ * without restriction, including without limitation the rights to copy,
+ * create derivative works of, display, perform, and distribute the Software
+ * and make, use, sell, offer for sale, import, export, have made, and have
+ * sold the Software and the Larger Work(s), and to sublicense the foregoing
+ * rights on either these or other terms.
+ *
+ * This license is subject to the following condition:
  *
- * 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.
+ * The above copyright notice and either this complete permission notice or
+ * at a minimum a reference to the UPL must be included in all copies or
+ * substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+ * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ * USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  * or visit www.oracle.com if you need additional information or have any
--- a/test/hotspot/jtreg/ProblemList-graal.txt	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/ProblemList-graal.txt	Fri Jul 27 12:16:01 2018 +0100
@@ -40,6 +40,8 @@
 compiler/compilercontrol/jcmd/AddLogTest.java                   8181753   generic-all
 compiler/compilercontrol/mixed/RandomValidCommandsTest.java     8181753   generic-all
 
+compiler/graalunit/JttThreadsTest.java                          8208066   generic-all
+
 compiler/intrinsics/mathexact/LongMulOverflowTest.java          8196568   generic-all
 
 compiler/jvmci/SecurityRestrictionsTest.java                    8181837   generic-all
--- a/test/hotspot/jtreg/ProblemList.txt	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/ProblemList.txt	Fri Jul 27 12:16:01 2018 +0100
@@ -44,6 +44,7 @@
 compiler/codecache/stress/OverloadCompileQueueTest.java 8166554 generic-all
 compiler/codegen/Test6896617.java 8193479 generic-all
 compiler/compilercontrol/jcmd/ClearDirectivesFileStackTest.java 8140405 generic-all
+compiler/jvmci/compilerToVM/GetFlagValueTest.java 8204459 generic-all
 compiler/jvmci/compilerToVM/GetResolvedJavaTypeTest.java 8158860 generic-all
 compiler/jvmci/compilerToVM/InvalidateInstalledCodeTest.java 8163894 generic-all
 compiler/tiered/LevelTransitionTest.java 8067651 generic-all
@@ -53,7 +54,7 @@
 compiler/c2/Test6852078.java 8194310 generic-all
 
 applications/ctw/modules/java_desktop.java 8189604 windows-all
-applications/ctw/modules/java_desktop_2.java 8189604,8204842 generic-all
+applications/ctw/modules/java_desktop_2.java 8189604 windows-all
 applications/ctw/modules/jdk_jconsole.java 8189604 windows-all
 
 #############################################################################
@@ -74,13 +75,43 @@
 # :hotspot_runtime
 
 runtime/CompressedOops/UseCompressedOops.java 8079353 generic-all
+runtime/SharedArchiveFile/SASymbolTableTest.java 8193639 solaris
 
 #############################################################################
 
 # :hotspot_serviceability
 
-serviceability/sa/TestRevPtrsForInvokeDynamic.java   8191270 generic-all
-serviceability/sa/sadebugd/SADebugDTest.java         8163805 generic-all
+serviceability/sa/ClhsdbAttach.java 8193639 solaris
+serviceability/sa/ClhsdbCDSCore.java 8207832 linux-x64
+serviceability/sa/ClhsdbField.java 8193639 solaris
+serviceability/sa/ClhsdbFindPC.java 8193639 solaris
+serviceability/sa/ClhsdbInspect.java 8193639 solaris
+serviceability/sa/ClhsdbJdis.java 8193639 solaris
+serviceability/sa/ClhsdbJhisto.java 8193639 solaris
+serviceability/sa/ClhsdbJstack.java 8193639 solaris
+serviceability/sa/ClhsdbLongConstant.java 8193639 solaris
+serviceability/sa/ClhsdbPmap.java 8193639 solaris
+serviceability/sa/ClhsdbPrintAll.java 8193639 solaris
+serviceability/sa/ClhsdbPrintAs.java 8193639 solaris
+serviceability/sa/ClhsdbPrintStatics.java 8193639 solaris
+serviceability/sa/ClhsdbPstack.java 8193639 solaris
+serviceability/sa/ClhsdbRegionDetailsScanOopsForG1.java 8193639 solaris
+serviceability/sa/ClhsdbScanOops.java 8193639 solaris
+serviceability/sa/ClhsdbSource.java 8193639 solaris
+serviceability/sa/ClhsdbSymbol.java 8193639 solaris
+serviceability/sa/ClhsdbSymbolTable.java 8193639 solaris
+serviceability/sa/ClhsdbThread.java 8193639 solaris
+serviceability/sa/ClhsdbWhere.java 8193639 solaris
+serviceability/sa/DeadlockDetectionTest.java 8193639 solaris
+serviceability/sa/JhsdbThreadInfoTest.java 8193639 solaris
+serviceability/sa/sadebugd/SADebugDTest.java 8163805 generic-all
+serviceability/sa/TestClassDump.java 8193639 solaris
+serviceability/sa/TestCpoolForInvokeDynamic.java 8193639 solaris
+serviceability/sa/TestDefaultMethods.java 8193639 solaris
+serviceability/sa/TestG1HeapRegion.java 8193639 solaris
+serviceability/sa/TestRevPtrsForInvokeDynamic.java 8191270 generic-all
+serviceability/sa/TestType.java 8193639 solaris
+serviceability/sa/TestUniverse.java 8193639 solaris
 
 #############################################################################
 
@@ -123,7 +154,7 @@
 
 vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk001/TestDescription.java 8016181 generic-all
 vmTestbase/nsk/jvmti/FieldModification/fieldmod001/TestDescription.java 8016181 generic-all
-vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java 8202896 linux-x64
+vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java 8202896,8206076,8208074 generic-all
 vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted001/TestDescription.java 7013634 generic-all
 vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted003/TestDescription.java 6606767 generic-all
 vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted004/TestDescription.java 7013634,6606767 generic-all
--- a/test/hotspot/jtreg/TEST.ROOT	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/TEST.ROOT	Fri Jul 27 12:16:01 2018 +0100
@@ -54,6 +54,7 @@
     vm.debug \
     vm.hasSA \
     vm.hasSAandCanAttach \
+    vm.hasJFR \
     vm.rtm.cpu \
     vm.rtm.os \
     vm.aot \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/aot/cli/jaotc/IgnoreErrorsTest.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @requires vm.aot
+ * @library / /test/lib /testlibrary
+ * @compile IllegalClass.jasm
+ * @run driver compiler.aot.cli.jaotc.IgnoreErrorsTest
+ */
+
+package compiler.aot.cli.jaotc;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+
+import jdk.test.lib.Asserts;
+import jdk.test.lib.process.OutputAnalyzer;
+
+public class IgnoreErrorsTest {
+    public static void main(String[] args) {
+        try {
+            Files.write(Paths.get("Empty.class"), new byte[] { }, StandardOpenOption.CREATE_NEW);
+        } catch (IOException e) {
+            throw new Error("can't create empty class file", e);
+        }
+        File compiledLibrary = new File(JaotcTestHelper.DEFAULT_LIB_PATH);
+        OutputAnalyzer oa;
+
+        System.out.println("Compiling empty class file w/o --ignore-errors");
+        oa = JaotcTestHelper.compileLibrary(
+            "--class-name", "Empty",
+            "--class-name", "java.lang.Object");
+        oa.shouldNotHaveExitValue(0);
+        Asserts.assertTrue(!compiledLibrary.exists(), "Compiled library file exists");
+
+        System.out.println("Compiling empty class file w/ --ignore-errors");
+        oa = JaotcTestHelper.compileLibrary(
+            "--ignore-errors",
+            "--class-name", "Empty",
+            "--class-name", "java.lang.Object");
+        oa.shouldHaveExitValue(0);
+        Asserts.assertTrue(compiledLibrary.exists(), "Compiled library file is missed");
+        JaotcTestHelper.checkLibraryUsage("-version");
+        compiledLibrary.delete();
+
+        System.out.println("Compiling illegal class file w/o --ignore-errors");
+        oa = JaotcTestHelper.compileLibrary(
+            "--class-name", "IllegalClass",
+            "--class-name", "java.lang.Object");
+        oa.shouldNotHaveExitValue(0);
+        Asserts.assertTrue(!compiledLibrary.exists(), "Compiled library file exists");
+
+        System.out.println("Compiling illegal class file w/ --ignore-errors");
+        oa = JaotcTestHelper.compileLibrary(
+            "--ignore-errors",
+            "--class-name", "IllegalClass",
+            "--class-name", "java.lang.Object");
+        oa.shouldHaveExitValue(0);
+        Asserts.assertTrue(compiledLibrary.exists(), "Compiled library file is missed");
+        JaotcTestHelper.checkLibraryUsage("-version");
+        compiledLibrary.delete();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/aot/cli/jaotc/IllegalClass.jasm	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+super public class IllegalClass
+    extends java/lang/String
+    version 46:0
+{ }
--- a/test/hotspot/jtreg/compiler/graalunit/common/GraalUnitTestLauncher.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/compiler/graalunit/common/GraalUnitTestLauncher.java	Fri Jul 27 12:16:01 2018 +0100
@@ -124,9 +124,12 @@
             throw new Exception("Failed to find tests, VM crashed with exit code " + exitCode);
         }
 
-        System.out.println("INFO: command output: [" + out.getOutput() + "]");
+        String outStr = out.getOutput().trim();
+        System.out.println("INFO: command output: [" + outStr + "]");
 
-        String[] lines = out.getStdout().split(" ");
+        String[] lines = outStr.split(" ");
+        Arrays.sort(lines);
+
         if (lines.length > 1) { // first line contains jar file name
             for (int i = 1; i < lines.length; i++) {
                 String className = lines[i];
--- a/test/hotspot/jtreg/runtime/appcds/CDSandJFR.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/runtime/appcds/CDSandJFR.java	Fri Jul 27 12:16:01 2018 +0100
@@ -22,10 +22,10 @@
  *
  */
 
-/*
+/**
  * @test
  * @summary Make sure CDS and JFR work together.
- * @requires vm.cds
+ * @requires vm.hasJFR & vm.cds
  * @library /test/lib /test/hotspot/jtreg/runtime/appcds /test/hotspot/jtreg/runtime/appcds/test-classes test-classes
  * @modules jdk.jfr
  * @build Hello GetFlightRecorder
--- a/test/hotspot/jtreg/runtime/appcds/TestWithProfiler.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/runtime/appcds/TestWithProfiler.java	Fri Jul 27 12:16:01 2018 +0100
@@ -22,14 +22,14 @@
  *
  */
 
-/*
+/**
  * @test
  * @bug 8145221
  * @summary After creating an AppCDS archive, run the test with the JFR profiler
  *          enabled, and keep calling a method in the archive in a tight loop.
  *          This is to test the safe handling of trampoline functions by the
  *          profiler.
- * @requires vm.cds
+ * @requires vm.hasJFR & vm.cds
  * @library /test/lib /test/hotspot/jtreg/runtime/appcds
  * @modules java.base/jdk.internal.misc
  *          java.management
--- a/test/hotspot/jtreg/runtime/appcds/sharedStrings/FlagCombo.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/runtime/appcds/sharedStrings/FlagCombo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -22,10 +22,10 @@
  *
  */
 
-/*
+/**
  * @test
  * @summary Test relevant combinations of command line flags with shared strings
- * @requires vm.cds.archived.java.heap
+ * @requires vm.cds.archived.java.heap & vm.hasJFR
  * @library /test/lib /test/hotspot/jtreg/runtime/appcds
  * @modules java.base/jdk.internal.misc
  * @modules java.management
@@ -34,7 +34,21 @@
  * @run main FlagCombo
  */
 
+/**
+ * @test
+ * @summary Test relevant combinations of command line flags with shared strings
+ * @comment A special test excluding the case that requires JFR
+ * @requires vm.cds.archived.java.heap & !vm.hasJFR
+ * @library /test/lib /test/hotspot/jtreg/runtime/appcds
+ * @modules java.base/jdk.internal.misc
+ * @modules java.management
+ *          jdk.jartool/sun.tools.jar
+ * @build HelloString
+ * @run main FlagCombo noJfr
+ */
+
 import jdk.test.lib.BuildHelper;
+import jdk.test.lib.Platform;
 
 public class FlagCombo {
     public static void main(String[] args) throws Exception {
@@ -45,8 +59,10 @@
 
         SharedStringsUtils.runWithArchive("HelloString", "-XX:+UseG1GC");
 
-        SharedStringsUtils.runWithArchiveAuto("HelloString",
-           "-XX:StartFlightRecording=dumponexit=true");
+        if (args.length == 0) {
+            SharedStringsUtils.runWithArchiveAuto("HelloString",
+                "-XX:StartFlightRecording=dumponexit=true");
+        }
 
         SharedStringsUtils.runWithArchive("HelloString", "-XX:+UnlockDiagnosticVMOptions",
            "-XX:NativeMemoryTracking=detail", "-XX:+PrintNMTStatistics");
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorGCTest.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorGCTest.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,13 +43,17 @@
       throw new RuntimeException("Statistics should be null to begin with.");
     }
 
+    // Put sampling rate to 100k to ensure samples are collected.
+    HeapMonitor.setSamplingInterval(100 * 1024);
+
     HeapMonitor.enableSamplingEvents();
 
     List<Frame> frameList = HeapMonitor.allocate();
-    frameList.add(new Frame("main", "([Ljava/lang/String;)V", "HeapMonitorGCTest.java", 48));
+    frameList.add(new Frame("main", "([Ljava/lang/String;)V", "HeapMonitorGCTest.java", 51));
     Frame[] frames = frameList.toArray(new Frame[0]);
 
-    if (!HeapMonitor.obtainedEvents(frames)) {
+    if (!HeapMonitor.obtainedEvents(frames)
+        && !HeapMonitor.garbageContains(frames)) {
       throw new RuntimeException("No expected events were found.");
     }
 
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorTest.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorTest.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,16 +43,20 @@
       HeapMonitor.setAllocationIterations(Integer.parseInt(args[0]));
     }
 
+    // Put sampling rate to 100k to ensure samples are collected.
+    HeapMonitor.setSamplingInterval(100 * 1024);
+
     if (!HeapMonitor.eventStorageIsEmpty()) {
       throw new RuntimeException("Storage is not empty at test start...");
     }
 
     HeapMonitor.enableSamplingEvents();
     List<Frame> frameList = HeapMonitor.allocate();
-    frameList.add(new Frame("main", "([Ljava/lang/String;)V", "HeapMonitorTest.java", 51));
+    frameList.add(new Frame("main", "([Ljava/lang/String;)V", "HeapMonitorTest.java", 54));
 
     Frame[] frames = frameList.toArray(new Frame[0]);
-    if (!HeapMonitor.obtainedEvents(frames)) {
+    if (!HeapMonitor.obtainedEvents(frames)
+        && !HeapMonitor.garbageContains(frames)) {
       throw new RuntimeException("Events not found with the right frames.");
     }
 
--- a/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java	Fri Jul 27 12:16:01 2018 +0100
@@ -67,7 +67,7 @@
 /**
  * Test checks that static fields will be initialized in new loaded class. Test performs in loop the following routine:
  * 1.) Load class either by regular classloader or by Unsafe.defineAnonymousClass.
- * 2.) Trigger unloading. Class must be alive. Next step will check that static fields would not lost.
+ * 2.) Trigger unloading. Class must be alive. Next step will check that static fields were not lost.
  * 3.) Change static fields.
  * 4.) Unload class.
  * 5.) Load class again as in step 1.
@@ -82,7 +82,7 @@
 
     private static String[] args;
 
-    private static final int LIMIT = 100;
+    private static final int LIMIT = 20;
 
     private List<Object> keepAlive = new LinkedList<Object>();
 
@@ -103,7 +103,7 @@
 
         @Override
     public void run() {
-                random = new Random(runParams.getSeed());
+        random = new Random(runParams.getSeed());
         ExecutionController stresser = new Stresser(args);
         stresser.start(1);
 
@@ -116,7 +116,7 @@
                         return;
                 }
             for (int j = 0; j < fieldQuantities.length; j++) {
-                fieldQuantities[j] = 1 + random.nextInt(2000);
+                fieldQuantities[j] = 1 + random.nextInt(20);
             }
             bytecodeList.add(generateAndCompile(fieldQuantities));
         }
@@ -209,9 +209,9 @@
         }
     }
 
-    private byte[] generateAndCompile(int[] filedQuantities) {
+    private byte[] generateAndCompile(int[] fieldQuantities) {
         Map<String, CharSequence> sources = new HashMap<String, CharSequence>();
-        sources.put("A", generateSource(filedQuantities));
+        sources.put("A", generateSource(fieldQuantities));
         return InMemoryJavaCompiler.compile(sources).values().iterator().next();
     }
 
--- a/test/hotspot/jtreg/vmTestbase/metaspace/stressDictionary/StressDictionary.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/metaspace/stressDictionary/StressDictionary.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,7 +29,7 @@
  *
  * @library /vmTestbase /test/lib
  * @run driver jdk.test.lib.FileInstaller . .
- * @run main/othervm metaspace.stressDictionary.StressDictionary
+ * @run main/othervm metaspace.stressDictionary.StressDictionary -stressTime 30
  */
 
 package metaspace.stressDictionary;
@@ -57,15 +57,16 @@
  */
 public class StressDictionary extends GCTestBase {
 
+    private static byte[] bytecode;
+
     private class FillingDictionaryWorker implements Callable<Object> {
         @Override
         public Object call() throws Exception {
             while (stresser.continueExecution()) {
                 try {
-                    byte[] bytecode = generateAndCompile();
-                    bytecode[random.nextInt(bytecode.length)] = (byte) 42;
-                    classloader.define(bytecode);
-                    changeClassloaderIfRequired();
+                    byte[] badBytecode = bytecode.clone();
+                    badBytecode[random.nextInt(badBytecode.length)] = (byte) 42;
+                    classloader.define(badBytecode);
                 } catch (Throwable e) {
                     // We can get ClassFormatError, ClassNotFoundException or anything else here
                 }
@@ -78,10 +79,8 @@
         @Override
         public Object call() throws Exception {
             while (stresser.continueExecution()) {
-                byte[] bytecode = generateAndCompile();
                 Class<?> c = classloader.define(bytecode);
                 testClass(c);
-                changeClassloaderIfRequired();
             }
             return null;
         }
@@ -89,8 +88,6 @@
 
     private static String[] args;
 
-    private static final int DROP_CLASSLOADER_LIMIT = 50000;
-
     private static final String methodName = "myMethod";
 
     private static final int NUMBER_OF_CORRUPTING_THREADS = 10;
@@ -116,6 +113,8 @@
         random = new Random(runParams.getSeed());
         stresser = new Stresser(args);
         stresser.start(1);
+        // Generate some bytecodes.
+        bytecode = generateAndCompile();
         List<Callable<Object>> tasks = new LinkedList<Callable<Object>>();
         for (int i = 0; i < NUMBER_OF_CORRUPTING_THREADS; i++) {
             tasks.add(this.new FillingDictionaryWorker());
@@ -131,13 +130,6 @@
         }
     }
 
-    private void changeClassloaderIfRequired() {
-        if (ManagementFactory.getClassLoadingMXBean().getLoadedClassCount() > DROP_CLASSLOADER_LIMIT) {
-          ClassloaderUnderTest newOne = new ClassloaderUnderTest();
-          classloader = newOne;
-        }
-    }
-
     private byte[] generateAndCompile() {
         Map<String, CharSequence> sources = new HashMap<String, CharSequence>();
         String className = "MyClass" + classesCounter.incrementAndGet();
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java	Fri Jul 27 12:16:01 2018 +0100
@@ -61,7 +61,10 @@
     private static ExecutionController stresser;
     private static String[] args;
 
-    // This is random generator used for generating seeds for other Randoms. Setting seed from command line sets seed for this random.
+    private static byte[] bytecode;
+
+    // This is random generator used for generating seeds for other Randoms. Setting seed
+    // from command line sets seed for this random.
     static Random seedGenerator;
 
     static {
@@ -82,47 +85,53 @@
         Tests.runTest(new StressRedefine(), args);
     }
 
-        @Override
-        public void run() {
-                seedGenerator = new Random(runParams.getSeed());
-                GenerateSourceHelper.setRandom(new Random(seedGenerator.nextLong()));
+    @Override
+    public void run() {
+        seedGenerator = new Random(runParams.getSeed());
+        GenerateSourceHelper.setRandom(new Random(seedGenerator.nextLong()));
         stresser = new Stresser(args);
 
         for (int i = 0; i < args.length; i++ ) {
-                if ("-staticMethodCallersNumber".equals(args[i])) {
-                        staticMethodCallersNumber = Integer.parseInt(args[i + 1]);
-                } else if ("-nonstaticMethodCallersNumber".equals(args[i])) {
-                        nonstaticMethodCallersNumber = Integer.parseInt(args[i + 1]);
-                } else if ("-redefiningThreadsNumber".equals(args[i])) {
-                        redefiningThreadsNumber = Integer.parseInt(args[i + 1]);
-                } else if ("-corruptingBytecodeProbability".equals(args[i])) {
-                        corruptingBytecodeProbability = Double.parseDouble(args[i + 1]);
-                }
+            if ("-staticMethodCallersNumber".equals(args[i])) {
+                staticMethodCallersNumber = Integer.parseInt(args[i + 1]);
+            } else if ("-nonstaticMethodCallersNumber".equals(args[i])) {
+                nonstaticMethodCallersNumber = Integer.parseInt(args[i + 1]);
+            } else if ("-redefiningThreadsNumber".equals(args[i])) {
+                redefiningThreadsNumber = Integer.parseInt(args[i + 1]);
+            } else if ("-corruptingBytecodeProbability".equals(args[i])) {
+                corruptingBytecodeProbability = Double.parseDouble(args[i + 1]);
+            }
         }
 
         //Dynamic attach if required
         nsk.share.jvmti.JVMTITest.commonInit(args);
 
         new StressRedefine().runIt();
+    }
+
+    private static void runMethod(Random random, String name) {
+        while (stresser.continueExecution()) {
+            try {
+                // Just for fun we transfer parameters to method
+                Object res = myClass.getMethod(name, double.class, int.class, Object.class)
+                                         .invoke(null, random.nextDouble(), random.nextInt(), new Object());
+             } catch (IllegalArgumentException | InvocationTargetException
+                     | IllegalAccessException | NoSuchMethodException e) {
+                 // It's okay to get exception here since we are corrupting bytecode and can't expect
+                 // class to work properly.
+                 System.out.println("Got expected exception: " + e.toString());
+             }
         }
+    }
 
     private static class StaticMethodCaller implements Runnable {
         private Random random;
         public StaticMethodCaller() {random = new Random(seedGenerator.nextLong());}
 
-                @Override
-                public void run() {
-                        while (stresser.continueExecution()) {
-                                try {
-                                        Object res = myClass.getMethod(GenerateSourceHelper.STATIC_METHOD_NAME, double.class, int.class, Object.class).invoke(
-                                                        null, random.nextDouble(), random.nextInt(), new Object()); // Just for fun we transfer parameters to method
-                                } catch (IllegalArgumentException | InvocationTargetException
-                                                | IllegalAccessException | NoSuchMethodException e) {
-                                        //It's okay to get exception here since we are corrupting bytecode and can't expect class to work properly.
-                                        System.out.println("Got expected exception: " + e.toString());
-                                }
-                        }
-                }
+        @Override
+        public void run() {
+            runMethod(random, GenerateSourceHelper.STATIC_METHOD_NAME);
+        }
     }
 
     private static class NonstaticMethodCaller implements Runnable {
@@ -130,59 +139,54 @@
         public NonstaticMethodCaller() {random = new Random(seedGenerator.nextLong());}
 
         @Override
-                public void run() {
-                        while (stresser.continueExecution()) {
-                                try {
-                                        Object res = myClass.getMethod(GenerateSourceHelper.NONSTATIC_METHOD_NAME, double.class, int.class, Object.class).
-                                                        invoke(myClass.newInstance(), random.nextDouble(), random.nextInt(), new Object()); // Just for fun we transfer parameters to method
-                                } catch (IllegalArgumentException | InvocationTargetException | NoSuchMethodException | InstantiationException | IllegalAccessException e) {
-                                        //It's okay to get exception here since we are corrupting bytecode and can't expect class to work properly.
-                                        System.out.println("Got expected exception: " + e.toString());
-                                }
-                        }
-                }
+        public void run() {
+            runMethod(random, GenerateSourceHelper.NONSTATIC_METHOD_NAME);
+        }
     }
 
     private static class Worker implements Runnable {
         private Random random;
         public Worker() {random = new Random(seedGenerator.nextLong());}
 
-                @Override
-                public void run() {
-                        while (stresser.continueExecution()) {
-                                byte[] bytecode = generateAndCompile();
-                                if (random.nextDouble() < corruptingBytecodeProbability) {
-                                        bytecode[random.nextInt(bytecode.length)] = 42;
-                                }
-                                makeRedefinition(2, myClass, bytecode);
-                        }
+        @Override
+        public void run() {
+            while (stresser.continueExecution()) {
+                byte[] badBytecode = bytecode.clone();
+                if (random.nextDouble() < corruptingBytecodeProbability) {
+                    badBytecode[random.nextInt(bytecode.length)] = 42;
                 }
+                makeRedefinition(2, myClass, badBytecode);
+            }
+        }
     }
 
     private void runIt() {
         myClass = new DefiningClassLoader().defineClass(generateAndCompile());
         stresser.start(0);
 
+        // Generate some bytecode.
+        bytecode = generateAndCompile();
+
         List<Thread> threads = new LinkedList<Thread>();
         for (int i = 0; i < staticMethodCallersNumber; i++) {
-                threads.add(new Thread(new StaticMethodCaller()));
+            threads.add(new Thread(new StaticMethodCaller()));
         }
         for (int i = 0; i < nonstaticMethodCallersNumber; i++) {
-                threads.add(new Thread(new NonstaticMethodCaller()));
+            threads.add(new Thread(new NonstaticMethodCaller()));
         }
         for (int i = 0; i < redefiningThreadsNumber; i++) {
-                threads.add(new Thread(new Worker()));
+            threads.add(new Thread(new Worker()));
         }
 
         for (Thread thread : threads) {
-                thread.start();
+            thread.start();
         }
         for (Thread thread : threads) {
-                try {
-                        thread.join();
-                } catch (InterruptedException e) {
-                        throw new TestFailure("Thread " + Thread.currentThread() + " was interrupted:", e);
-                }
+            try {
+                thread.join();
+            } catch (InterruptedException e) {
+                throw new TestFailure("Thread " + Thread.currentThread() + " was interrupted:", e);
+            }
         }
     }
 
@@ -192,15 +196,14 @@
         return InMemoryJavaCompiler.compile(sources).values().iterator().next();
     }
 
-        // Auxiliary classloader. Used only once at the beginning.
-        private static class DefiningClassLoader extends URLClassLoader {
-                public DefiningClassLoader() {
-                        super(new URL[0]);
-                }
-
-                Class<?> defineClass(byte[] bytecode) {
-                        return defineClass(null, bytecode, 0, bytecode.length);
-                }
+    // Auxiliary classloader. Used only once at the beginning.
+    private static class DefiningClassLoader extends URLClassLoader {
+        public DefiningClassLoader() {
+            super(new URL[0]);
         }
 
+        Class<?> defineClass(byte[] bytecode) {
+            return defineClass(null, bytecode, 0, bytecode.length);
+        }
+    }
 }
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass028.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass028.java	Fri Jul 27 12:16:01 2018 +0100
@@ -129,8 +129,9 @@
         status = checkStatus(status);
 
         boolean isRedefinitionStarted = waitForRedefinitionStarted();
+        boolean isRedefinitionCompleted = false;
         if (isRedefinitionStarted) {
-            waitForRedefinitionCompleted();
+            isRedefinitionCompleted = waitForRedefinitionCompleted();
         }
 
         log.display("waiting for auxiliary thread ...\n");
@@ -144,7 +145,7 @@
         }
 
         // CR 6604375: check whether class redefinition occurred
-        if (isRedefinitionStarted) {
+        if (isRedefinitionCompleted) {
             // verify results
             checkOuterFields(0, 1);
             checkOuterFields(1, 2);
@@ -166,23 +167,26 @@
             --iterationsLeft;
             safeSleep(SLEEP_MS);
         }
-        log.complain("Redefinition not started. Maybe running with -Xcomp. Test ignored.");
+        log.complain("Redefinition not started. May need more time for -Xcomp.");
+        status = Consts.TEST_FAILED;
         return false;
     }
 
-    private void waitForRedefinitionCompleted() {
+    private boolean waitForRedefinitionCompleted() {
         final int SLEEP_MS = 20;
         int iterationsLeft = 10000 / SLEEP_MS;
         while (iterationsLeft >= 0) {
             // Check if new code has changed fields.
             if (prStOuterFl[1] == 2 && prStOuterFl[2] == 2) {
                 log.display("Redefinition completed.");
-                return;
+                return true;
             }
             --iterationsLeft;
             safeSleep(SLEEP_MS);
         }
-        log.complain("Redefinition not completed.");
+        log.complain("Redefinition not completed. May need more time for -Xcomp.");
+        status = Consts.TEST_FAILED;
+        return false;
     }
 
     private void checkOuterFields(int index, int expValue) {
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/redefclass028.c	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/redefclass028.c	Fri Jul 27 12:16:01 2018 +0100
@@ -66,6 +66,7 @@
         (JNIEnv *jni_env, jclass cls)
 {
     if (fire == 1) {
+        NSK_DISPLAY0("isRedefinitionOccurred is called: fired!\n");
         return JNI_TRUE;
     } else {
         return JNI_FALSE;
@@ -76,7 +77,10 @@
 JNIEXPORT void JNICALL Java_nsk_jvmti_RedefineClasses_redefclass028_notifyNativeAgent
         (JNIEnv *jni_env, jclass cls)
 {
-    enteredHotMethod = 1;
+    if (enteredHotMethod == 0) {
+        NSK_DISPLAY0("notifyNativeAgent is called\n");
+        enteredHotMethod = 1;
+    }
 }
 
 /** pass bytecode to native agent for redefinition **/
@@ -103,11 +107,11 @@
         nsk_jvmti_setFailStatus();
         return;
     }
-    NSK_DISPLAY5("\tmethod: name=\"%s\" signature=\"%s\"\n\
-\tcompiled code size=%d\n\
-\tstarting native address=0x%p\n\
-\tnumber of address location map entries=%d\n",
-        name, sig, code_size, code_addr, map_length);
+    NSK_DISPLAY5("\tmethod: name=\"%s\" signature=\"%s\"\n"
+                 "\tcompiled code size=%d\n"
+                 "\tstarting native address=0x%p\n"
+                 "\tnumber of address location map entries=%d\n",
+                 name, sig, code_size, code_addr, map_length);
 
     if ((strcmp(name, expHSMethod) == 0) &&
             (strcmp(sig, expHSSignature) == 0)) {
@@ -118,8 +122,7 @@
             hsMethodID = method;
             fire = 1;
         } else {
-            NSK_DISPLAY0("Compilation occured before method execution");
-            fire = -1;
+            NSK_DISPLAY0("Compilation occured before method execution. Ignoring.\n");
         }
     }
 }
@@ -174,9 +177,9 @@
         THREAD_sleep(1);
         tries++;
         if (tries > MAX_ATTEMPTS) {
-            printf("WARNING: CompiledMethodLoad event is still not received for \"%s\" after %d attempts\n\
-\tThe test has no results\n\n",
-                expHSMethod, MAX_ATTEMPTS);
+            printf("WARNING: CompiledMethodLoad event is still not received for \"%s\" after %d attempts\n"
+                   "\tThe test has no results\n\n",
+                   expHSMethod, MAX_ATTEMPTS);
             nsk_jvmti_resumeSync();
             exit(95 + PASSED);
         }
@@ -184,43 +187,37 @@
 
     NSK_DISPLAY0("agentProc: hotspot method compiled\n\n");
 
-    // CR 6604375: check whether it is appropriate to perform redefinition
-    if (fire == 1) {
-        if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetMethodDeclaringClass,
-                        jvmti_env, hsMethodID, &decl_cls))) {
-            nsk_jvmti_setFailStatus();
-            nsk_jvmti_resumeSync();
-            return;
-        }
-        if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature,
-                        jvmti_env, decl_cls, &cls_sig, NULL))) {
-            nsk_jvmti_setFailStatus();
-            nsk_jvmti_resumeSync();
-            return;
-        }
-        else
-            NSK_DISPLAY1("agentProc: hotspot method class signature: \"%s\"\n\n",
-                    cls_sig);
+    if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetMethodDeclaringClass,
+                                        jvmti_env, hsMethodID, &decl_cls))) {
+        nsk_jvmti_setFailStatus();
+        nsk_jvmti_resumeSync();
+        return;
+    }
+    if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature,
+                                        jvmti_env, decl_cls, &cls_sig, NULL))) {
+        nsk_jvmti_setFailStatus();
+        nsk_jvmti_resumeSync();
+        return;
+    } else {
+        NSK_DISPLAY1("agentProc: hotspot method class signature: \"%s\"\n\n",
+                     cls_sig);
+    }
 
-        /* fill the structure jvmtiClassDefinition */
-        classDef.klass = decl_cls;
-        classDef.class_byte_count = bytesCount;
-        classDef.class_bytes = (unsigned char*) clsBytes;
+    /* fill the structure jvmtiClassDefinition */
+    classDef.klass = decl_cls;
+    classDef.class_byte_count = bytesCount;
+    classDef.class_bytes = (unsigned char*) clsBytes;
 
-        NSK_DISPLAY1("agentProc: >>>>>>>> Invoke RedefineClasses():\n\
-                \tnew class byte count=%d\n",
-                classDef.class_byte_count);
-        if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RedefineClasses,
-                        jvmti, 1, &classDef))) {
-            nsk_jvmti_setFailStatus();
-            nsk_jvmti_resumeSync();
-            return;
-        }
-        NSK_DISPLAY0("agentProc: <<<<<<<< RedefineClasses() is successfully done\n");
-    } else {
-        // fire == -1
-        NSK_DISPLAY0("agentProc: \"hot\" method wasn't executed. Don't perform redefinition\n");
+    NSK_DISPLAY1("agentProc: >>>>>>>> Invoke RedefineClasses():\n"
+                 "\tnew class byte count=%d\n",
+                 classDef.class_byte_count);
+    if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RedefineClasses,
+                                        jvmti, 1, &classDef))) {
+        nsk_jvmti_setFailStatus();
+        nsk_jvmti_resumeSync();
+        return;
     }
+    NSK_DISPLAY0("agentProc: <<<<<<<< RedefineClasses() is successfully done\n");
 
     /* testing sync */
     NSK_DISPLAY1("agentProc: waiting for the debuggee finish for %d msecs...\n\n",
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass029.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass029.java	Fri Jul 27 12:16:01 2018 +0100
@@ -126,8 +126,9 @@
         status = checkStatus(status);
 
         boolean isRedefinitionStarted = waitForRedefinitionStarted();
+        boolean isRedefinitionCompleted = false;
         if (isRedefinitionStarted) {
-            waitForRedefinitionCompleted(redefCls);
+            isRedefinitionCompleted = waitForRedefinitionCompleted(redefCls);
         }
 
         log.display("waiting for auxiliary thread ...\n");
@@ -141,7 +142,7 @@
         }
 
         // CR 6604375: check whether class redefinition occurred
-        if (isRedefinitionStarted) {
+        if (isRedefinitionCompleted) {
             // verify results
             checkOuterFields(0, 1);
             checkOuterFields(1, 2);
@@ -163,23 +164,26 @@
             --iterationsLeft;
             safeSleep(SLEEP_MS);
         }
-        log.complain("Redefinition not started. Maybe running with -Xcomp. Test ignored.");
+        log.complain("Redefinition not started. May need more time for -Xcomp.");
+        status = Consts.TEST_FAILED;
         return false;
     }
 
-    private void waitForRedefinitionCompleted(RedefClass redefCls) {
+    private boolean waitForRedefinitionCompleted(RedefClass redefCls) {
         final int SLEEP_MS = 20;
         int iterationsLeft = 10000 / SLEEP_MS;
         while (iterationsLeft >= 0) {
             // Check if new code has changed fields.
             if (prStOuterFl[1] == 2 && prStOuterFl[2] == 2 && redefCls.prInnerFl == 1) {
                 log.display("Redefinition completed.");
-                return;
+                return true;
             }
             --iterationsLeft;
             safeSleep(SLEEP_MS);
         }
-        log.complain("Redefinition not completed.");
+        log.complain("Redefinition not completed. May need more time for -Xcomp.");
+        status = Consts.TEST_FAILED;
+        return false;
     }
 
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/redefclass029.c	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/redefclass029.c	Fri Jul 27 12:16:01 2018 +0100
@@ -65,9 +65,8 @@
 JNIEXPORT jboolean JNICALL Java_nsk_jvmti_RedefineClasses_redefclass029_isRedefinitionOccurred
         (JNIEnv *jni_env, jclass cls)
 {
-    NSK_DISPLAY0("isRedefinitionOccurred is called\n");
-
     if (fire == 1) {
+        NSK_DISPLAY0("isRedefinitionOccurred is called: fired!\n");
         return JNI_TRUE;
     } else {
         return JNI_FALSE;
@@ -78,8 +77,10 @@
 JNIEXPORT void JNICALL Java_nsk_jvmti_RedefineClasses_redefclass029_notifyNativeAgent
         (JNIEnv *jni_env, jclass cls)
 {
-    NSK_DISPLAY0("notifyNativeAgent is called\n");
-    enteredHotMethod = 1;
+    if (enteredHotMethod == 0) {
+        NSK_DISPLAY0("notifyNativeAgent is called\n");
+        enteredHotMethod = 1;
+    }
 }
 
 JNIEXPORT void JNICALL Java_nsk_jvmti_RedefineClasses_redefclass029_storeClassBytes
@@ -105,11 +106,11 @@
         nsk_jvmti_setFailStatus();
         return;
     }
-    NSK_DISPLAY5("\tmethod: name=\"%s\" signature=\"%s\"\n\
-\tcompiled code size=%d\n\
-\tstarting native address=0x%p\n\
-\tnumber of address location map entries=%d\n",
-        name, sig, code_size, code_addr, map_length);
+    NSK_DISPLAY5("\tmethod: name=\"%s\" signature=\"%s\"\n"
+                 "\tcompiled code size=%d\n"
+                 "\tstarting native address=0x%p\n"
+                 "\tnumber of address location map entries=%d\n",
+                 name, sig, code_size, code_addr, map_length);
 
     if ((strcmp(name, expHSMethod) == 0) &&
             (strcmp(sig, expHSSignature) == 0)) {
@@ -120,8 +121,7 @@
             hsMethodID = method;
             fire = 1;
         } else {
-            NSK_DISPLAY0("Compilation occured before method execution");
-            fire = -1;
+            NSK_DISPLAY0("Compilation occured before method execution. Ignoring.\n");
         }
     }
 }
@@ -176,9 +176,9 @@
         THREAD_sleep(1);
         tries++;
         if (tries > MAX_ATTEMPTS) {
-            printf("WARNING: CompiledMethodLoad event is still not received for \"%s\" after %d attempts\n\
-\tThe test has no results\n\n",
-                expHSMethod, MAX_ATTEMPTS);
+            printf("WARNING: CompiledMethodLoad event is still not received for \"%s\" after %d attempts\n"
+                   "\tThe test has no results\n\n",
+                   expHSMethod, MAX_ATTEMPTS);
             nsk_jvmti_resumeSync();
             exit(95 + PASSED);
         }
@@ -186,43 +186,37 @@
 
     NSK_DISPLAY0("agentProc: hotspot method compiled\n\n");
 
-    // CR 6604375: check whether it is appropriate to perform redefinition
-    if (fire == 1) {
-        if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetMethodDeclaringClass,
-                        jvmti_env, hsMethodID, &decl_cls))) {
-            nsk_jvmti_setFailStatus();
-            nsk_jvmti_resumeSync();
-            return;
-        }
-        if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature,
-                        jvmti_env, decl_cls, &cls_sig, NULL))) {
-            nsk_jvmti_setFailStatus();
-            nsk_jvmti_resumeSync();
-            return;
-        }
-        else
-            NSK_DISPLAY1("agentProc: hotspot method class signature: \"%s\"\n\n",
-                    cls_sig);
+    if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetMethodDeclaringClass,
+                                        jvmti_env, hsMethodID, &decl_cls))) {
+        nsk_jvmti_setFailStatus();
+        nsk_jvmti_resumeSync();
+        return;
+    }
+    if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature,
+                                        jvmti_env, decl_cls, &cls_sig, NULL))) {
+        nsk_jvmti_setFailStatus();
+        nsk_jvmti_resumeSync();
+        return;
+    } else {
+        NSK_DISPLAY1("agentProc: hotspot method class signature: \"%s\"\n\n",
+                     cls_sig);
+    }
 
-        /* fill the structure jvmtiClassDefinition */
-        classDef.klass = decl_cls;
-        classDef.class_byte_count = bytesCount;
-        classDef.class_bytes = (unsigned char*) clsBytes;
+    /* fill the structure jvmtiClassDefinition */
+    classDef.klass = decl_cls;
+    classDef.class_byte_count = bytesCount;
+    classDef.class_bytes = (unsigned char*) clsBytes;
 
-        NSK_DISPLAY1("agentProc: >>>>>>>> Invoke RedefineClasses():\n\
-                \tnew class byte count=%d\n",
-                classDef.class_byte_count);
-        if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RedefineClasses,
-                        jvmti, 1, &classDef))) {
-            nsk_jvmti_setFailStatus();
-            nsk_jvmti_resumeSync();
-            return;
-        }
-        NSK_DISPLAY0("agentProc: <<<<<<<< RedefineClasses() is successfully done\n");
-    } else {
-        // fire == -1
-        NSK_DISPLAY0("agentProc: \"hot\" method wasn't executed. Don't perform redefinition\n");
+    NSK_DISPLAY1("agentProc: >>>>>>>> Invoke RedefineClasses():\n"
+                 "\tnew class byte count=%d\n",
+                 classDef.class_byte_count);
+    if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RedefineClasses,
+                                        jvmti, 1, &classDef))) {
+      nsk_jvmti_setFailStatus();
+      nsk_jvmti_resumeSync();
+      return;
     }
+    NSK_DISPLAY0("agentProc: <<<<<<<< RedefineClasses() is successfully done\n");
 
     /* testing sync */
     NSK_DISPLAY1("agentProc: waiting for the debuggee finish for %d msecs...\n\n",
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass030.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass030.java	Fri Jul 27 12:16:01 2018 +0100
@@ -125,8 +125,9 @@
         status = checkStatus(status);
 
         boolean isRedefinitionStarted = waitForRedefinitionStarted();
+        boolean isRedefinitionCompleted = false;
         if (isRedefinitionStarted) {
-            waitForRedefinitionCompleted(redefClsWrapper);
+            isRedefinitionCompleted = waitForRedefinitionCompleted(redefClsWrapper);
         }
 
         log.display("waiting for auxiliary thread ...\n");
@@ -140,7 +141,7 @@
         }
 
         // CR 6604375: check whether class redefinition occurred
-        if (isRedefinitionStarted) {
+        if (isRedefinitionCompleted) {
             // verify results
             checkOuterOuterFields(0, 2);
             checkOuterOuterFields(1, 2);
@@ -162,23 +163,26 @@
             --iterationsLeft;
             safeSleep(SLEEP_MS);
         }
-        log.complain("Redefinition not started. Maybe running with -Xcomp. Test ignored.");
+        log.complain("Redefinition not started. May need more time for -Xcomp.");
+        status = Consts.TEST_FAILED;
         return false;
     }
 
-    private void waitForRedefinitionCompleted(RedefClassWrapper redefClsWrapper) {
+    private boolean waitForRedefinitionCompleted(RedefClassWrapper redefClsWrapper) {
         final int SLEEP_MS = 20;
         int iterationsLeft = 10000 / SLEEP_MS;
         while (iterationsLeft >= 0) {
             // Check if new code has changed fields.
             if (prStOuterOuterFl[0] == 2 && prStOuterOuterFl[1] == 2 && redefClsWrapper.prOuterFl[1] == 2) {
                 log.display("Redefinition completed.");
-                return;
+                return true;
             }
             --iterationsLeft;
             safeSleep(SLEEP_MS);
         }
-        log.complain("Redefinition not completed.");
+        log.complain("Redefinition not completed. May need more time for -Xcomp.");
+        status = Consts.TEST_FAILED;
+        return false;
     }
 
     private void checkOuterOuterFields(int index, int expValue) {
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/redefclass030.c	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/redefclass030.c	Fri Jul 27 12:16:01 2018 +0100
@@ -65,9 +65,8 @@
 JNIEXPORT jboolean JNICALL Java_nsk_jvmti_RedefineClasses_redefclass030_isRedefinitionOccurred
         (JNIEnv *jni_env, jclass cls)
 {
-    NSK_DISPLAY0("isRedefinitionOccurred is called\n");
-
     if (fire == 1) {
+        NSK_DISPLAY0("isRedefinitionOccurred is called: fired!\n");
         return JNI_TRUE;
     } else {
         return JNI_FALSE;
@@ -78,8 +77,10 @@
 JNIEXPORT void JNICALL Java_nsk_jvmti_RedefineClasses_redefclass030_notifyNativeAgent
         (JNIEnv *jni_env, jclass cls)
 {
-    NSK_DISPLAY0("notifyNativeAgent is called\n");
-    enteredHotMethod = 1;
+    if (enteredHotMethod == 0) {
+        NSK_DISPLAY0("notifyNativeAgent is called\n");
+        enteredHotMethod = 1;
+    }
 }
 
 /** pass bytecode to native agent for redefinition **/
@@ -106,11 +107,11 @@
         nsk_jvmti_setFailStatus();
         return;
     }
-    NSK_DISPLAY5("\tmethod: name=\"%s\" signature=\"%s\"\n\
-\tcompiled code size=%d\n\
-\tstarting native address=0x%p\n\
-\tnumber of address location map entries=%d\n",
-        name, sig, code_size, code_addr, map_length);
+    NSK_DISPLAY5("\tmethod: name=\"%s\" signature=\"%s\"\n"
+                 "\tcompiled code size=%d\n"
+                 "\tstarting native address=0x%p\n"
+                 "\tnumber of address location map entries=%d\n",
+                 name, sig, code_size, code_addr, map_length);
 
     if ((strcmp(name, expHSMethod) == 0) &&
             (strcmp(sig, expHSSignature) == 0)) {
@@ -121,8 +122,7 @@
             hsMethodID = method;
             fire = 1;
         } else {
-            NSK_DISPLAY0("Compilation occured before method execution");
-            fire = -1;
+            NSK_DISPLAY0("Compilation occured before method execution. Ignoring.\n");
         }
     }
 }
@@ -177,9 +177,9 @@
         THREAD_sleep(1);
         tries++;
         if (tries > MAX_ATTEMPTS) {
-            printf("WARNING: CompiledMethodLoad event is still not received for \"%s\" after %d attempts\n\
-\tThe test has no results\n\n",
-                expHSMethod, MAX_ATTEMPTS);
+            printf("WARNING: CompiledMethodLoad event is still not received for \"%s\" after %d attempts\n"
+                   "\tThe test has no results\n\n",
+                   expHSMethod, MAX_ATTEMPTS);
             nsk_jvmti_resumeSync();
             exit(95 + PASSED);
         }
@@ -187,43 +187,37 @@
 
     NSK_DISPLAY0("agentProc: hotspot method compiled\n\n");
 
-    // CR 6604375: check whether it is appropriate to perform redefinition
-    if (fire == 1) {
-        if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetMethodDeclaringClass,
-                        jvmti_env, hsMethodID, &decl_cls))) {
-            nsk_jvmti_setFailStatus();
-            nsk_jvmti_resumeSync();
-            return;
-        }
-        if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature,
-                        jvmti_env, decl_cls, &cls_sig, NULL))) {
-            nsk_jvmti_setFailStatus();
-            nsk_jvmti_resumeSync();
-            return;
-        }
-        else
-            NSK_DISPLAY1("agentProc: hotspot method class signature: \"%s\"\n\n",
-                    cls_sig);
+    if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetMethodDeclaringClass,
+                                        jvmti_env, hsMethodID, &decl_cls))) {
+        nsk_jvmti_setFailStatus();
+        nsk_jvmti_resumeSync();
+        return;
+    }
+    if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature,
+                                        jvmti_env, decl_cls, &cls_sig, NULL))) {
+        nsk_jvmti_setFailStatus();
+        nsk_jvmti_resumeSync();
+        return;
+    } else {
+      NSK_DISPLAY1("agentProc: hotspot method class signature: \"%s\"\n\n",
+                   cls_sig);
+    }
 
-        /* fill the structure jvmtiClassDefinition */
-        classDef.klass = decl_cls;
-        classDef.class_byte_count = bytesCount;
-        classDef.class_bytes = (unsigned char*) clsBytes;
+    /* fill the structure jvmtiClassDefinition */
+    classDef.klass = decl_cls;
+    classDef.class_byte_count = bytesCount;
+    classDef.class_bytes = (unsigned char*) clsBytes;
 
-        NSK_DISPLAY1("agentProc: >>>>>>>> Invoke RedefineClasses():\n\
-                \tnew class byte count=%d\n",
-                classDef.class_byte_count);
-        if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RedefineClasses,
-                        jvmti, 1, &classDef))) {
-            nsk_jvmti_setFailStatus();
-            nsk_jvmti_resumeSync();
-            return;
-        }
-        NSK_DISPLAY0("agentProc: <<<<<<<< RedefineClasses() is successfully done\n");
-    } else {
-        // fire == -1
-        NSK_DISPLAY0("agentProc: \"hot\" method wasn't executed. Don't perform redefinition\n");
+    NSK_DISPLAY1("agentProc: >>>>>>>> Invoke RedefineClasses():\n"
+                 "\tnew class byte count=%d\n",
+                 classDef.class_byte_count);
+    if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RedefineClasses,
+                                        jvmti, 1, &classDef))) {
+      nsk_jvmti_setFailStatus();
+      nsk_jvmti_resumeSync();
+      return;
     }
+    NSK_DISPLAY0("agentProc: <<<<<<<< RedefineClasses() is successfully done\n");
 
     /* testing sync */
     NSK_DISPLAY1("agentProc: waiting for the debuggee finish for %d msecs...\n\n",
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted003/TestDescription.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted003/TestDescription.java	Fri Jul 27 12:16:01 2018 +0100
@@ -42,9 +42,9 @@
  *      -agentlib:resexhausted=-waittime=5
  *      -Xms64m
  *      -Xmx64m
- *      -XX:MaxMetaspaceSize=8m
+ *      -XX:MaxMetaspaceSize=9m
  *      -XX:-UseGCOverheadLimit
  *      nsk.jvmti.ResourceExhausted.resexhausted003
- *      ./bin/classes
+ *      ../../classes/0/vmTestbase
  */
 
--- a/test/jdk/ProblemList.txt	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/ProblemList.txt	Fri Jul 27 12:16:01 2018 +0100
@@ -39,15 +39,18 @@
 #
 # Shell tests are othervm by default.
 #
-# List items  are testnames followed by labels, all MUST BE commented
+# List items are testnames followed by labels, all MUST BE commented
 #   as to why they are here and use a label:
 #     generic-all   Problems on all platforms
-#     generic-ARCH  Where ARCH is one of: sparc, sparcv9, x64, i586, etc.
+#     generic-ARCH  Where ARCH is one of: sparc, sparcv9, x64, i586, ppc64,
+#                   ppc64le, s390x etc.
 #     OSNAME-all    Where OSNAME is one of: solaris, linux, windows, macosx, aix
 #     OSNAME-ARCH   Specific on to one OSNAME and ARCH, e.g. solaris-amd64
 #     OSNAME-REV    Specific on to one OSNAME and REV, e.g. solaris-5.8
 #
-# More than one label is allowed but must be on the same line.
+# More than one label is allowed but must be on the same line comma seperated,
+# without spaces.
+# If there are several lines mentioning the same test, the last one is used.
 #
 #############################################################################
 #
@@ -80,7 +83,7 @@
 # Fixing the tests:
 #
 # Some tests just may need to be run with "othervm", and that can easily be
-#   done my adding a @run line (or modifying any existing @run):
+#   done by adding a @run line (or modifying any existing @run):
 #      @run main/othervm NameOfMainClass
 #   Make sure this @run follows any use of @library.
 #   Otherwise, if the test is a samevm possibility, make sure the test is
@@ -550,7 +553,9 @@
 java/net/MulticastSocket/NoLoopbackPackets.java                 7122846 macosx-all
 java/net/MulticastSocket/SetLoopbackMode.java                   7122846 macosx-all
 
-java/net/MulticastSocket/Test.java                              7145658 macosx-all
+java/net/MulticastSocket/Test.java                              7145658,8207404 macosx-all,aix-all
+java/net/MulticastSocket/JoinLeave.java                         8207404 aix-all
+java/net/MulticastSocket/SetGetNetworkInterfaceTest.java        8207404 aix-all
 
 java/net/DatagramSocket/SendDatagramToBadAddress.java           7143960 macosx-all
 
@@ -563,6 +568,7 @@
 java/nio/channels/DatagramChannel/ChangingAddress.java          7141822 macosx-all
 
 java/nio/channels/Selector/Wakeup.java                          6963118 windows-all
+java/nio/channels/Selector/RacyDeregister.java                  8201765 windows-all
 
 java/nio/file/WatchService/Basic.java                           7158947 solaris-all Solaris 11
 java/nio/file/WatchService/MayFlies.java                        7158947 solaris-all Solaris 11
@@ -587,11 +593,15 @@
 
 java/rmi/registry/readTest/CodebaseTest.java                    8173324 windows-all
 
-java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java         8206865 generic-all
-java/rmi/activation/Activatable/restartService/RestartService.java                  8206865 generic-all
-java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService.java    8206865 generic-all
-java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java              8206865 generic-all
-java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog.java          8206865 generic-all
+############################################################################
+
+# jdk_sctp
+
+com/sun/nio/sctp/SctpMultiChannel/SendFailed.java               8141694 linux-all
+
+com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java        8141694 linux-all
+
+com/sun/nio/sctp/SctpChannel/SocketOptionTests.java             8141694 linux-all
 
 ############################################################################
 
@@ -816,12 +826,13 @@
 # core_tools
 
 tools/pack200/CommandLineTests.java                             8059906 generic-all
-tools/jimage/JImageListTest.java                                8206445 windows-all
 
 ############################################################################
 
 # jdk_jdi
 
+com/sun/jdi/BasicJDWPConnectionTest.java                        8195703 generic-all
+
 com/sun/jdi/RedefineImplementor.sh                              8004127 generic-all
 
 com/sun/jdi/JdbExprTest.sh                                      8203393 solaris-all
--- a/test/jdk/TEST.ROOT	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/TEST.ROOT	Fri Jul 27 12:16:01 2018 +0100
@@ -42,6 +42,7 @@
     vm.cds \
     vm.hasSA \
     vm.hasSAandCanAttach \
+    vm.hasJFR \
     docker.support \
     release.implementor
 
--- a/test/jdk/build/translations/VerifyTranslations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/build/translations/VerifyTranslations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -45,7 +45,7 @@
      * The set of translations we want to see in an Oracle built image
      */
     private static final Set<String> VALID_TRANSLATION_SUFFIXES = Set.of(
-            "_en", "_en_US", "_en_US_POSIX", "_ja", "_zh_CN", "_zh_TW", "_zh_HK"
+            "_en", "_en_US", "_en_US_POSIX", "_ja", "_zh_CN"
     );
 
     /**
--- a/test/jdk/com/sun/jdi/EvalArraysAsList.sh	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/com/sun/jdi/EvalArraysAsList.sh	Fri Jul 27 12:16:01 2018 +0100
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,7 @@
 public class $classname {
     public static void main(String[] args) {
         java.util.List<Object> l = java.util.Arrays.asList(null, "a");
-        System.out.println("java.util.Arrays.asList(null, \"a\") returns: " + l);
+        System.out.println("java.util.Arrays.asList(null, \\"a\\") returns: " + l);
         return;    // @1 breakpoint
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jdi/Frames2Test.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8205608
+ * @summary Test that getting the stack trace for a very large stack does
+ * not take too long
+ *
+ * @author Ralf Schmelter
+ *
+ * @run build TestScaffold VMConnection TargetListener TargetAdapter
+ * @run compile -g Frames2Test.java
+ * @run driver Frames2Test -Xss4M
+ */
+import com.sun.jdi.*;
+import com.sun.jdi.event.*;
+import com.sun.jdi.request.*;
+
+import java.util.*;
+import java.util.stream.*;
+
+
+    /********** target program **********/
+
+class Frames2Targ {
+
+    public static void main(String[] args) {
+        recurse(1_000_000);
+    }
+
+    static void notifyRecursionEnded() {
+        // We moved this to a method instead of doing it directly in the
+        // exception handler for the StackOverflowError, since we don't
+        // need to know the line number (which might change later) when
+        // requesting the breakpoint. Additionally this method is
+        // used as a marker method to check for the correct top of stack
+        // in the stack trace queried by JDI.
+        System.out.println("SOE occurred as expected");
+    }
+
+    static int recurse(int depth) {
+        if (depth == 0) {
+            // Should have seen a stack overflow by now.
+            System.out.println("Exited without creating SOE");
+            System.exit(0);
+        }
+
+        try {
+            int newDepth = recurse(depth - 1);
+
+            if (newDepth == -1_000) {
+                // Pop some frames so there is room on the stack for the
+                // call (including println()).
+                notifyRecursionEnded();
+            }
+
+            return newDepth - 1;
+        } catch (StackOverflowError e) {
+            // Use negative depth to indicate the recursion has ended.
+            return -1;
+        }
+    }
+}
+
+    /********** test program **********/
+
+public class Frames2Test extends TestScaffold {
+
+    public Frames2Test(String args[]) {
+        super(args);
+    }
+
+    public static void main(String[] args) throws Exception {
+        new Frames2Test(args).startTests();
+    }
+
+
+    /********** test core **********/
+
+    protected void runTests() throws Exception {
+        BreakpointEvent bpe = startToMain("Frames2Targ");
+        List<Method> frames1 = bpe.thread().frames().stream().map(
+                StackFrame::location).map(Location::method).
+                collect(Collectors.toList());
+
+        bpe = resumeTo("Frames2Targ", "notifyRecursionEnded", "()V");
+        List<Method> frames2 = bpe.thread().frames().stream().map(
+                StackFrame::location).map(Location::method).
+                collect(Collectors.toList());
+        System.out.println("Got stack of " + frames2.size() + " frames");
+
+        // Check that the stack looks as follows:
+        // notifyRecursionEnded()
+        // recurse()
+        // ....
+        // recurse()
+        // main()
+        // <whatever the VM likes to add>
+
+        // Check the bottom of the stack.
+        for (int i = 0; i < frames1.size(); ++i) {
+            int i2 = frames2.size() - frames1.size() + i;
+            if (!frames1.get(i).equals(frames2.get(i2))) {
+                failure("Bottom methods do not match: " +
+                        frames1.get(i) + " vs " + frames2.get(i2));
+            }
+        }
+
+        // Check the recurse() calls on the stack.
+        for (int i = 1; i < frames2.size() - frames1.size(); ++i) {
+            if (!frames2.get(i).name().equals("recurse")) {
+                failure("Expected recurse() but got " + frames2.get(i));
+            }
+        }
+
+        // Check the top method of the stack.
+        if (!frames2.get(0).name().equals("notifyRecursionEnded")) {
+            failure("Expected notifyRecursionEnded() but got " + frames2.get(0));
+        }
+
+        listenUntilVMDisconnect();
+
+        if (!testFailed) {
+            println("Frames2Test: passed");
+        } else {
+            throw new Exception("Frames2Test: failed");
+        }
+    }
+}
--- a/test/jdk/com/sun/jndi/dns/AttributeTests/GetAny.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAny.java	Fri Jul 27 12:16:01 2018 +0100
@@ -28,54 +28,33 @@
  *          qualifiers.
  * @modules java.base/sun.security.util
  * @library ../lib/
- * @build DNSTestUtils DNSServer DNSTracer
  * @run main GetAny
  */
 
 import javax.naming.directory.Attributes;
-import javax.naming.directory.DirContext;
-import javax.naming.directory.InitialDirContext;
-import java.net.DatagramSocket;
-import java.net.InetAddress;
-import java.util.Hashtable;
 
-public class GetAny {
-    private static final String KEY = "host1";
+public class GetAny extends GetAttrsBase {
 
-    private static final String[] MANDATORY = { "A", "MX", "HINFO", "TXT", "29"
-            // "LOC"
-    };
+    public static void main(String[] args) throws Exception {
+        new GetAny().run(args);
+    }
 
-    private static final String[] OPTIONAL = {};
-
-    public static void main(String argv[]) throws Exception {
-        // Create socket on localhost only to avoid possible noise packet
-        DatagramSocket socket = new DatagramSocket(0,
-                InetAddress.getLoopbackAddress());
+    @Override public Attributes getAttributes() {
+        return null;
+    }
 
-        // initialize test
-        Hashtable<Object, Object> env;
-
-        env = DNSTestUtils.initEnv(socket, GetAny.class.getName(), argv);
-
-        DirContext ctx = null;
-
-        try {
-            // connect to server
-            ctx = new InitialDirContext(env);
+    @Override public void runTest() throws Exception {
+        initContext();
 
-            // Any type from IN class
-            Attributes retAttrs = ctx.getAttributes(KEY, new String[] { "*" });
-            DNSTestUtils.verifySchema(retAttrs, MANDATORY, OPTIONAL);
-
-            retAttrs = ctx.getAttributes(KEY, new String[] { "* *" });
-            DNSTestUtils.verifySchema(retAttrs, MANDATORY, OPTIONAL);
+        // Any type from IN class
+        Attributes retAttrs = context()
+                .getAttributes(getKey(), new String[] { "*" });
+        verifyAttributes(retAttrs);
 
-            retAttrs = ctx.getAttributes(KEY, new String[] { "IN *" });
-            DNSTestUtils.verifySchema(retAttrs, MANDATORY, OPTIONAL);
+        retAttrs = context().getAttributes(getKey(), new String[] { "* *" });
+        verifyAttributes(retAttrs);
 
-        } finally {
-            DNSTestUtils.cleanup(ctx);
-        }
+        retAttrs = context().getAttributes(getKey(), new String[] { "IN *" });
+        verifyAttributes(retAttrs);
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrs.dns	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# 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.
+#
+
+################################################################################
+# Capture file for GetAttrs.java
+#
+# NOTE: This hexadecimal dump of DNS protocol messages was generated by
+#       running the GetAttrs application program against a real DNS
+#       server along with DNSTracer
+#
+################################################################################
+
+# DNS Request
+
+0000: 2F EA 01 00 00 01 00 00   00 00 00 00 05 68 6F 73  /............hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 FF                                           ...
+
+
+# DNS Response
+
+0000: 2F EA 85 80 00 01 00 06   00 01 00 01 05 68 6F 73  /............hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 FF C0 0C 00 10 00   01 00 00 8C A0 00 15 14  ................
+0030: 41 20 76 65 72 79 20 70   6F 70 75 6C 61 72 20 68  A very popular h
+0040: 6F 73 74 2E C0 0C 00 1D   00 01 00 00 8C A0 00 10  ost.............
+0050: 00 12 16 13 88 97 1A 35   69 68 41 38 00 9B 16 58  .......5ihA8...X
+0060: C0 0C 00 0D 00 01 00 00   8C A0 00 13 0C 54 68 65  .............The
+0070: 20 4F 72 69 67 69 6E 61   6C 05 53 75 6E 6E 79 C0   Original.Sunny.
+0080: 0C 00 0F 00 01 00 00 8C   A0 00 12 00 14 05 72 65  ..............re
+0090: 6C 61 79 05 74 65 78 61   73 02 75 73 00 C0 0C 00  lay.texas.us....
+00A0: 0F 00 01 00 00 8C A0 00   0F 00 0A 05 72 65 6C 61  ............rela
+00B0: 79 04 6F 68 69 6F C0 99   C0 0C 00 01 00 01 00 01  y.ohio..........
+00C0: 51 80 00 04 01 02 04 01   C0 12 00 02 00 01 00 00  Q...............
+00D0: 8C A0 00 05 02 6E 73 C0   12 C0 D4 00 01 00 01 00  .....ns.........
+00E0: 00 8C A0 00 04 7F 00 00   01                       .........
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrs.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8198882
+ * @summary Tests that we can get the attributes of a DNS entry.
+ *          Use getAttributes form that has no attrIds parameter.
+ * @modules java.base/sun.security.util
+ * @library ../lib/
+ * @run main GetAttrs
+ */
+
+import javax.naming.directory.Attributes;
+
+public class GetAttrs extends GetAttrsBase {
+
+    public static void main(String[] args) throws Exception {
+        new GetAttrs().run(args);
+    }
+
+    @Override public void runTest() throws Exception {
+        initContext();
+        Attributes retAttrs = getAttributes();
+        verifyAttributes(retAttrs);
+    }
+
+    /*
+     * Tests that we can get the attributes of a DNS entry.
+     * Use getAttributes form that has no attrIds parameter.
+     */
+    @Override public Attributes getAttributes() throws Exception {
+        return context().getAttributes(getKey());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsBase.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import javax.naming.directory.Attributes;
+import javax.naming.directory.InitialDirContext;
+
+public abstract class GetAttrsBase extends DNSTestBase {
+    private String key;
+    private String[] mandatoryAttrs;
+
+    public GetAttrsBase() {
+        // set default test data
+        setKey("host1");
+        setMandatoryAttrs("A", "MX", "HINFO", "TXT", "29");
+    }
+
+    private static final String[] OPTIONAL_ATTRIBUTES = {};
+
+    public void initContext() throws Exception {
+        setContext(new InitialDirContext(env()));
+    }
+
+    public abstract Attributes getAttributes() throws Exception;
+
+    public void verifyAttributes(Attributes retAttrs) {
+        if (retAttrs != null) {
+            DNSTestUtils.verifySchema(retAttrs, mandatoryAttrs,
+                    OPTIONAL_ATTRIBUTES);
+        } else {
+            throw new RuntimeException("Attributes to be verified is null");
+        }
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String[] getMandatoryAttrs() {
+        return mandatoryAttrs;
+    }
+
+    public void setMandatoryAttrs(String... mandatoryAttrs) {
+        this.mandatoryAttrs = mandatoryAttrs;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsEmptyAttrIds.dns	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# 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.
+#
+
+################################################################################
+# Capture file for GetAttrsEmptyAttrIds.java
+#
+# NOTE: This hexadecimal dump of DNS protocol messages was generated by
+#       running the GetAttrsEmptyAttrIds application program against a real DNS
+#       server along with DNSTracer
+#
+################################################################################
+
+# DNS Request
+
+0000: BC 12 01 00 00 01 00 00   00 00 00 00 05 68 6F 73  .............hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01                                           ...
+
+
+# DNS Response
+
+0000: BC 12 85 80 00 01 00 06   00 01 00 01 05 68 6F 73  .............hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01 C0 0C 00 10 00   01 00 00 8C A0 00 15 14  ................
+0030: 41 20 76 65 72 79 20 70   6F 70 75 6C 61 72 20 68  A very popular h
+0040: 6F 73 74 2E C0 0C 00 1D   00 01 00 00 8C A0 00 10  ost.............
+0050: 00 12 16 13 88 97 1A 35   69 68 41 38 00 9B 16 58  .......5ihA8...X
+0060: C0 0C 00 0D 00 01 00 00   8C A0 00 13 0C 54 68 65  .............The
+0070: 20 4F 72 69 67 69 6E 61   6C 05 53 75 6E 6E 79 C0   Original.Sunny.
+0080: 0C 00 0F 00 01 00 00 8C   A0 00 11 00 0A 05 72 65  ..............re
+0090: 6C 61 79 04 6F 68 69 6F   02 75 73 00 C0 0C 00 0F  lay.ohio.us.....
+00A0: 00 01 00 00 8C A0 00 10   00 14 05 72 65 6C 61 79  ...........relay
+00B0: 05 74 65 78 61 73 C0 98   C0 0C 00 01 00 01 00 01  .texas..........
+00C0: 51 80 00 04 01 02 04 01   C0 12 00 02 00 01 00 00  Q...............
+00D0: 8C A0 00 05 02 6E 73 C0   12 C0 D4 00 01 00 01 00  .....ns.........
+00E0: 00 8C A0 00 04 7F 00 00   01                       .........
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsEmptyAttrIds.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8198882
+ * @summary Tests that we can get the attributes of a DNS entry.
+ *          Specify that no attributes are to be returned.
+ * @modules java.base/sun.security.util
+ * @library ../lib/
+ * @run main GetAttrsEmptyAttrIds
+ */
+
+import javax.naming.directory.Attributes;
+
+public class GetAttrsEmptyAttrIds extends GetAttrsBase {
+
+    public GetAttrsEmptyAttrIds() {
+        // set new test data instead of default value
+        setMandatoryAttrs(new String[] {});
+    }
+
+    public static void main(String[] args) throws Exception {
+        new GetAttrsEmptyAttrIds().run(args);
+    }
+
+    @Override public void runTest() throws Exception {
+        initContext();
+        Attributes retAttrs = getAttributes();
+        verifyAttributes(retAttrs);
+    }
+
+    /*
+     * Tests that we can get the attributes of a DNS entry.
+     * Specify that no attributes are to be returned.
+     */
+    @Override public Attributes getAttributes() throws Exception {
+        return context().getAttributes(getKey(), new String[] {});
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsNonExistentAttrIds.dns	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# 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.
+#
+
+################################################################################
+# Capture file for GetAttrsNonExistentAttrIds.java
+#
+# NOTE: This hexadecimal dump of DNS protocol messages was generated by
+#       running the GetAttrsNonExistentAttrIds application program against
+#       a real DNS server along with DNSTracer
+#
+################################################################################
+
+# DNS Request
+
+0000: FC 9A 01 00 00 01 00 00   00 00 00 00 05 68 6F 73  .............hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01                                           ...
+
+
+# DNS Response
+
+0000: FC 9A 85 80 00 01 00 06   00 01 00 01 05 68 6F 73  .............hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01 C0 0C 00 10 00   01 00 00 8C A0 00 15 14  ................
+0030: 41 20 76 65 72 79 20 70   6F 70 75 6C 61 72 20 68  A very popular h
+0040: 6F 73 74 2E C0 0C 00 1D   00 01 00 00 8C A0 00 10  ost.............
+0050: 00 12 16 13 88 97 1A 35   69 68 41 38 00 9B 16 58  .......5ihA8...X
+0060: C0 0C 00 0D 00 01 00 00   8C A0 00 13 0C 54 68 65  .............The
+0070: 20 4F 72 69 67 69 6E 61   6C 05 53 75 6E 6E 79 C0   Original.Sunny.
+0080: 0C 00 0F 00 01 00 00 8C   A0 00 12 00 14 05 72 65  ..............re
+0090: 6C 61 79 05 74 65 78 61   73 02 75 73 00 C0 0C 00  lay.texas.us....
+00A0: 0F 00 01 00 00 8C A0 00   0F 00 0A 05 72 65 6C 61  ............rela
+00B0: 79 04 6F 68 69 6F C0 99   C0 0C 00 01 00 01 00 01  y.ohio..........
+00C0: 51 80 00 04 01 02 04 01   C0 12 00 02 00 01 00 00  Q...............
+00D0: 8C A0 00 05 02 6E 73 C0   12 C0 D4 00 01 00 01 00  .....ns.........
+00E0: 00 8C A0 00 04 7F 00 00   01                       .........
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsNonExistentAttrIds.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8198882
+ * @summary Tests that we can get the attributes of a DNS entry.
+ *          Supply at least one nonexistent attribute name in attrIds
+ *          (should be ignored).
+ * @modules java.base/sun.security.util
+ * @library ../lib/
+ * @run main GetAttrsNonExistentAttrIds
+ */
+
+import javax.naming.directory.Attributes;
+
+public class GetAttrsNonExistentAttrIds extends GetAttrsBase {
+
+    public static void main(String[] args) throws Exception {
+        new GetAttrsNonExistentAttrIds().run(args);
+    }
+
+    @Override public void runTest() throws Exception {
+        initContext();
+        Attributes retAttrs = getAttributes();
+        verifyAttributes(retAttrs);
+    }
+
+    /*
+     * Tests that we can get the attributes of a DNS entry.
+     * Supply at least one nonexistent attribute name in attrIds
+     * (should be ignored).
+     */
+    @Override public Attributes getAttributes() throws Exception {
+        String[] attrIds = new String[getMandatoryAttrs().length + 1];
+        attrIds[0] = "SOA";
+        System.arraycopy(getMandatoryAttrs(), 0, attrIds, 1,
+                getMandatoryAttrs().length);
+
+        return context().getAttributes(getKey(), attrIds);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsNotFound.dns	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,49 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# 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.
+#
+
+################################################################################
+# Capture file for GetAttrsNotFound.java
+#
+# NOTE: This hexadecimal dump of DNS protocol messages was generated by
+#       running the GetAttrsNotFound application program against a real DNS
+#       server along with DNSTracer
+#
+################################################################################
+
+# DNS Request
+
+0000: 56 B1 01 00 00 01 00 00   00 00 00 00 08 6E 6F 74  V............not
+0010: 66 6F 75 6E 64 07 64 6F   6D 61 69 6E 31 03 63 6F  found.domain1.co
+0020: 6D 00 00 FF 00 FF                                  m.....
+
+
+# DNS Response
+
+0000: 56 B1 85 83 00 01 00 00   00 01 00 00 08 6E 6F 74  V............not
+0010: 66 6F 75 6E 64 07 64 6F   6D 61 69 6E 31 03 63 6F  found.domain1.co
+0020: 6D 00 00 FF 00 FF C0 15   00 06 00 01 00 00 8C A0  m...............
+0030: 00 26 02 6E 73 C0 15 0A   70 6F 73 74 6D 61 73 74  .&.ns...postmast
+0040: 65 72 C0 15 00 00 00 01   00 00 1C 20 00 00 0E 10  er......... ....
+0050: 00 06 97 80 00 01 51 80                            ......Q.
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsNotFound.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8198882
+ * @summary Tests that get attributes of a missing child entry results
+ *          in NameNotFoundException.
+ * @modules java.base/sun.security.util
+ * @library ../lib/
+ * @run main GetAttrsNotFound
+ */
+
+import javax.naming.NameNotFoundException;
+import javax.naming.directory.Attributes;
+
+public class GetAttrsNotFound extends GetAttrsBase {
+
+    public GetAttrsNotFound() {
+        // set new test data instead of default value
+        setKey("notfound");
+    }
+
+    public static void main(String[] args) throws Exception {
+        new GetAttrsNotFound().run(args);
+    }
+
+    @Override public void runTest() throws Exception {
+        initContext();
+        Attributes retAttrs = getAttributes();
+        DNSTestUtils.debug(retAttrs);
+        throw new RuntimeException(
+                "Failed: getAttributes succeeded unexpectedly");
+    }
+
+    /*
+     * Tests that get attributes of a missing child entry results
+     * in NameNotFoundException.
+     */
+    @Override public Attributes getAttributes() throws Exception {
+        return context().getAttributes(getKey());
+    }
+
+    @Override public boolean handleException(Exception e) {
+        if (e instanceof NameNotFoundException) {
+            System.out.println("Got exception as expected : " + e);
+            return true;
+        }
+
+        return super.handleException(e);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsNullAttrIds.dns	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# 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.
+#
+
+################################################################################
+# Capture file for GetAttrsNullAttrIds.java
+#
+# NOTE: This hexadecimal dump of DNS protocol messages was generated by
+#       running the GetAttrsNullAttrIds application program against a real DNS
+#       server along with DNSTracer
+#
+################################################################################
+
+# DNS Request
+
+0000: 60 3C 01 00 00 01 00 00   00 00 00 00 05 68 6F 73  `<...........hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 FF                                           ...
+
+
+# DNS Response
+
+0000: 60 3C 85 80 00 01 00 06   00 01 00 01 05 68 6F 73  `<...........hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 FF C0 0C 00 10 00   01 00 00 8C A0 00 15 14  ................
+0030: 41 20 76 65 72 79 20 70   6F 70 75 6C 61 72 20 68  A very popular h
+0040: 6F 73 74 2E C0 0C 00 1D   00 01 00 00 8C A0 00 10  ost.............
+0050: 00 12 16 13 88 97 1A 35   69 68 41 38 00 9B 16 58  .......5ihA8...X
+0060: C0 0C 00 0D 00 01 00 00   8C A0 00 13 0C 54 68 65  .............The
+0070: 20 4F 72 69 67 69 6E 61   6C 05 53 75 6E 6E 79 C0   Original.Sunny.
+0080: 0C 00 0F 00 01 00 00 8C   A0 00 11 00 0A 05 72 65  ..............re
+0090: 6C 61 79 04 6F 68 69 6F   02 75 73 00 C0 0C 00 0F  lay.ohio.us.....
+00A0: 00 01 00 00 8C A0 00 10   00 14 05 72 65 6C 61 79  ...........relay
+00B0: 05 74 65 78 61 73 C0 98   C0 0C 00 01 00 01 00 01  .texas..........
+00C0: 51 80 00 04 01 02 04 01   C0 12 00 02 00 01 00 00  Q...............
+00D0: 8C A0 00 05 02 6E 73 C0   12 C0 D4 00 01 00 01 00  .....ns.........
+00E0: 00 8C A0 00 04 7F 00 00   01                       .........
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsNullAttrIds.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8198882
+ * @summary Tests that we can get the attributes of a DNS entry.
+ *          Use getAttributes form that accepts an attrIds parameter
+ *          and supply null for it.
+ * @modules java.base/sun.security.util
+ * @library ../lib/
+ * @run main GetAttrsNullAttrIds
+ */
+
+import javax.naming.directory.Attributes;
+
+public class GetAttrsNullAttrIds extends GetAttrsBase {
+
+    public static void main(String[] args) throws Exception {
+        new GetAttrsNullAttrIds().run(args);
+    }
+
+    @Override public void runTest() throws Exception {
+        initContext();
+        Attributes retAttrs = getAttributes();
+        verifyAttributes(retAttrs);
+    }
+
+    /*
+     * Tests that we can get the attributes of a DNS entry.
+     * Use getAttributes form that accepts an attrIds parameter
+     * and supply null for it.
+     */
+    @Override public Attributes getAttributes() throws Exception {
+        return context().getAttributes(getKey(), null);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsSomeAttrIds.dns	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# 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.
+#
+
+################################################################################
+# Capture file for GetAttrsSomeAttrIds.java
+#
+# NOTE: This hexadecimal dump of DNS protocol messages was generated by
+#       running the GetAttrsSomeAttrIds application program against a real DNS
+#       server along with DNSTracer
+#
+################################################################################
+
+# DNS Request
+
+0000: 20 34 01 00 00 01 00 00   00 00 00 00 05 68 6F 73   4...........hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01                                           ...
+
+
+# DNS Response
+
+0000: 20 34 85 80 00 01 00 06   00 01 00 01 05 68 6F 73   4...........hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01 C0 0C 00 10 00   01 00 00 8C A0 00 15 14  ................
+0030: 41 20 76 65 72 79 20 70   6F 70 75 6C 61 72 20 68  A very popular h
+0040: 6F 73 74 2E C0 0C 00 1D   00 01 00 00 8C A0 00 10  ost.............
+0050: 00 12 16 13 88 97 1A 35   69 68 41 38 00 9B 16 58  .......5ihA8...X
+0060: C0 0C 00 0D 00 01 00 00   8C A0 00 13 0C 54 68 65  .............The
+0070: 20 4F 72 69 67 69 6E 61   6C 05 53 75 6E 6E 79 C0   Original.Sunny.
+0080: 0C 00 0F 00 01 00 00 8C   A0 00 12 00 14 05 72 65  ..............re
+0090: 6C 61 79 05 74 65 78 61   73 02 75 73 00 C0 0C 00  lay.texas.us....
+00A0: 0F 00 01 00 00 8C A0 00   0F 00 0A 05 72 65 6C 61  ............rela
+00B0: 79 04 6F 68 69 6F C0 99   C0 0C 00 01 00 01 00 01  y.ohio..........
+00C0: 51 80 00 04 01 02 04 01   C0 12 00 02 00 01 00 00  Q...............
+00D0: 8C A0 00 05 02 6E 73 C0   12 C0 D4 00 01 00 01 00  .....ns.........
+00E0: 00 8C A0 00 04 7F 00 00   01                       .........
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetAttrsSomeAttrIds.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8198882
+ * @summary Tests that we can get the attributes of a DNS entry.
+ *          Specify a subset of the attributes to be returned.
+ * @modules java.base/sun.security.util
+ * @library ../lib/
+ * @run main GetAttrsSomeAttrIds
+ */
+
+import javax.naming.directory.Attributes;
+
+public class GetAttrsSomeAttrIds extends GetAttrsBase {
+
+    public GetAttrsSomeAttrIds() {
+        // set new test data instead of default value
+        setMandatoryAttrs("A", "MX", "TXT");
+    }
+
+    public static void main(String[] args) throws Exception {
+        new GetAttrsSomeAttrIds().run(args);
+    }
+
+    @Override public void runTest() throws Exception {
+        initContext();
+        Attributes retAttrs = getAttributes();
+        verifyAttributes(retAttrs);
+    }
+
+    /*
+     * Tests that we can get the attributes of a DNS entry.
+     * Specify a subset of the attributes to be returned.
+     */
+    @Override public Attributes getAttributes() throws Exception {
+        return context().getAttributes(getKey(), getMandatoryAttrs());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetNonstandard.dns	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,49 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# 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.
+#
+
+################################################################################
+# Capture file for GetNonstandard.java
+#
+# NOTE: This hexadecimal dump of DNS protocol messages was generated by
+#       running the GetNonstandard application program against a real DNS
+#       server along with DNSTracer
+#
+################################################################################
+
+# DNS Request
+
+0000: 43 D5 01 00 00 01 00 00   00 00 00 00 05 68 6F 73  C............hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: 1D 00 01                                           ...
+
+
+# DNS Response
+
+0000: 43 D5 85 80 00 01 00 01   00 01 00 01 05 68 6F 73  C............hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: 1D 00 01 C0 0C 00 1D 00   01 00 00 8C A0 00 10 00  ................
+0030: 12 16 13 88 97 1A 35 69   68 41 38 00 9B 16 58 C0  ......5ihA8...X.
+0040: 12 00 02 00 01 00 00 8C   A0 00 05 02 6E 73 C0 12  ............ns..
+0050: C0 4B 00 01 00 01 00 00   8C A0 00 04 7F 00 00 01  .K..............
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetNonstandard.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8198882
+ * @summary Tests that we can get an attribute that has a nonstandard name from
+ *          a DNS entry.
+ * @modules java.base/sun.security.util
+ * @library ../lib/
+ * @run main GetNonstandard
+ */
+
+import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
+import javax.naming.directory.Attributes;
+import java.util.Arrays;
+
+public class GetNonstandard extends GetAttrsBase {
+    // "40 2 0.373 N 105 17 23.528 W 1638m"
+    private static final byte[] EXPECTED_VALUE = { (byte) 0,    // version
+            (byte) 18,    // size
+            (byte) 22,    // horiz pre
+            (byte) 19,    // vert pre
+            (byte) -120,    // latitude 1
+            (byte) -105,    // latitude 2
+            (byte) 26,    // longitude 1
+            (byte) 53,    // longitude 2
+            (byte) 105,    // altitude 1
+            (byte) 104,    // altitude 2
+            (byte) 65, (byte) 56, (byte) 0, (byte) -101, (byte) 22,
+            (byte) 88, };
+
+    public GetNonstandard() {
+        // set new test data instead of default value
+        setMandatoryAttrs("29");
+    }
+
+    public static void main(String[] args) throws Exception {
+        new GetNonstandard().run(args);
+    }
+
+    @Override public void runTest() throws Exception {
+        initContext();
+        Attributes retAttrs = getAttributes();
+        verifyAttributes(retAttrs);
+        verifyLoc(retAttrs);
+    }
+
+    /*
+     * Tests that we can get an attribute that has a nonstandard name from
+     * a DNS entry.
+     */
+    @Override public Attributes getAttributes() throws Exception {
+        return context().getAttributes(getKey(), getMandatoryAttrs());
+    }
+
+    private void verifyLoc(Attributes retAttrs) throws NamingException {
+        Attribute loc = retAttrs.get(getMandatoryAttrs()[0]);
+        byte[] val = (byte[]) loc.get(0);
+
+        String expected = Arrays.toString(EXPECTED_VALUE);
+        String actual = Arrays.toString(val);
+        DNSTestUtils.debug("Expected: " + expected);
+        DNSTestUtils.debug("Actual:   " + actual);
+
+        if (!Arrays.equals(val, EXPECTED_VALUE)) {
+            throw new RuntimeException(String.format(
+                    "Failed: values not match, expected: %s, actual: %s",
+                    expected, actual));
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetNumericIRRs.dns	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,148 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+################################################################################
+# Capture file for GetNumericIRRs.java
+#
+# NOTE: This hexadecimal dump of DNS protocol messages was generated by
+#       running the GetNumericIRRs application program against a real DNS
+#       server along with DNSTracer
+#
+################################################################################
+
+# DNS Request
+
+0000: D6 36 01 00 00 01 00 00   00 00 00 00 05 68 6F 73  .6...........hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01                                           ...
+
+
+# DNS Response
+
+0000: D6 36 85 80 00 01 00 06   00 01 00 01 05 68 6F 73  .6...........hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01 C0 0C 00 10 00   01 00 00 8C A0 00 15 14  ................
+0030: 41 20 76 65 72 79 20 70   6F 70 75 6C 61 72 20 68  A very popular h
+0040: 6F 73 74 2E C0 0C 00 1D   00 01 00 00 8C A0 00 10  ost.............
+0050: 00 12 16 13 88 97 1A 35   69 68 41 38 00 9B 16 58  .......5ihA8...X
+0060: C0 0C 00 0D 00 01 00 00   8C A0 00 13 0C 54 68 65  .............The
+0070: 20 4F 72 69 67 69 6E 61   6C 05 53 75 6E 6E 79 C0   Original.Sunny.
+0080: 0C 00 0F 00 01 00 00 8C   A0 00 11 00 0A 05 72 65  ..............re
+0090: 6C 61 79 04 6F 68 69 6F   02 75 73 00 C0 0C 00 0F  lay.ohio.us.....
+00A0: 00 01 00 00 8C A0 00 10   00 14 05 72 65 6C 61 79  ...........relay
+00B0: 05 74 65 78 61 73 C0 98   C0 0C 00 01 00 01 00 01  .texas..........
+00C0: 51 80 00 04 01 02 04 01   C0 12 00 02 00 01 00 00  Q...............
+00D0: 8C A0 00 05 02 6E 73 C0   12 C0 D4 00 01 00 01 00  .....ns.........
+00E0: 00 8C A0 00 04 7F 00 00   01                       .........
+
+
+# DNS Request
+
+0000: 3F B9 01 00 00 01 00 00   00 00 00 00 07 64 6F 6D  ?............dom
+0010: 61 69 6E 31 03 63 6F 6D   00 00 FF 00 01           ain1.com.....
+
+
+# DNS Response
+
+0000: 3F B9 85 80 00 01 00 03   00 00 00 01 07 64 6F 6D  ?............dom
+0010: 61 69 6E 31 03 63 6F 6D   00 00 FF 00 01 C0 0C 00  ain1.com........
+0020: 06 00 01 00 00 8C A0 00   26 02 6E 73 C0 0C 0A 70  ........&.ns...p
+0030: 6F 73 74 6D 61 73 74 65   72 C0 0C 00 00 00 01 00  ostmaster.......
+0040: 00 1C 20 00 00 0E 10 00   06 97 80 00 01 51 80 C0  .. ..........Q..
+0050: 0C 00 02 00 01 00 00 8C   A0 00 02 C0 29 C0 0C 00  ............)...
+0060: 10 00 01 00 00 8C A0 00   0C 0B 54 65 73 74 20 64  ..........Test d
+0070: 6F 6D 61 69 6E C0 29 00   01 00 01 00 00 8C A0 00  omain.).........
+0080: 04 7F 00 00 01                                     .....
+
+
+# DNS Request
+
+0000: F2 5D 01 00 00 01 00 00   00 00 00 00 04 69 70 76  .]...........ipv
+0010: 36 07 64 6F 6D 61 69 6E   31 03 63 6F 6D 00 00 1C  6.domain1.com...
+0020: 00 01                                              ..
+
+
+# DNS Response
+
+0000: F2 5D 85 80 00 01 00 01   00 01 00 01 04 69 70 76  .]...........ipv
+0010: 36 07 64 6F 6D 61 69 6E   31 03 63 6F 6D 00 00 1C  6.domain1.com...
+0020: 00 01 C0 0C 00 1C 00 01   00 00 8C A0 00 10 00 0A  ................
+0030: 00 0B 00 0C 00 0D 00 0E   00 01 00 02 00 03 C0 11  ................
+0040: 00 02 00 01 00 00 8C A0   00 05 02 6E 73 C0 11 C0  ...........ns...
+0050: 4A 00 01 00 01 00 00 8C   A0 00 04 7F 00 00 01     J..............
+
+
+# DNS Request
+
+0000: 4E 2D 01 00 00 01 00 00   00 00 00 00 03 73 75 6E  N-...........sun
+0010: 07 64 6F 6D 61 69 6E 31   03 63 6F 6D 00 00 05 00  .domain1.com....
+0020: 01                                                 .
+
+
+# DNS Response
+
+0000: 4E 2D 85 80 00 01 00 01   00 01 00 01 03 73 75 6E  N-...........sun
+0010: 07 64 6F 6D 61 69 6E 31   03 63 6F 6D 00 00 05 00  .domain1.com....
+0020: 01 C0 0C 00 05 00 01 00   00 8C A0 00 08 05 68 6F  ..............ho
+0030: 73 74 31 C0 10 C0 10 00   02 00 01 00 00 8C A0 00  st1.............
+0040: 05 02 6E 73 C0 10 C0 41   00 01 00 01 00 00 8C A0  ..ns...A........
+0050: 00 04 7F 00 00 01                                  ......
+
+
+# DNS Request
+
+0000: 9D 9B 01 00 00 01 00 00   00 00 00 00 04 5F 66 74  ............._ft
+0010: 70 04 5F 54 63 70 07 64   6F 6D 61 69 6E 31 03 63  p._Tcp.domain1.c
+0020: 6F 6D 00 00 21 00 01                               om..!..
+
+
+# DNS Response
+
+0000: 9D 9B 85 80 00 01 00 01   00 01 00 02 04 5F 66 74  ............._ft
+0010: 70 04 5F 54 63 70 07 64   6F 6D 61 69 6E 31 03 63  p._Tcp.domain1.c
+0020: 6F 6D 00 00 21 00 01 C0   0C 00 21 00 01 00 00 8C  om..!.....!.....
+0030: A0 00 19 00 01 00 00 00   15 05 68 6F 73 74 34 07  ..........host4.
+0040: 64 6F 6D 61 69 6E 31 03   63 6F 6D 00 C0 3F 00 02  domain1.com..?..
+0050: 00 01 00 00 8C A0 00 05   02 6E 73 C0 3F C0 39 00  .........ns.?.9.
+0060: 01 00 01 00 01 51 80 00   04 01 02 04 04 C0 58 00  .....Q........X.
+0070: 01 00 01 00 00 8C A0 00   04 7F 00 00 01           .............
+
+
+# DNS Request
+
+0000: 77 5B 01 00 00 01 00 00   00 00 00 00 01 31 01 34  w[...........1.4
+0010: 01 32 01 31 07 69 6E 2D   61 64 64 72 04 61 72 70  .2.1.in-addr.arp
+0020: 61 00 00 0C 00 01                                  a.....
+
+
+# DNS Response
+
+0000: 77 5B 85 80 00 01 00 01   00 01 00 01 01 31 01 34  w[...........1.4
+0010: 01 32 01 31 07 69 6E 2D   61 64 64 72 04 61 72 70  .2.1.in-addr.arp
+0020: 61 00 00 0C 00 01 C0 0C   00 0C 00 01 00 00 8C A0  a...............
+0030: 00 13 05 68 6F 73 74 31   07 64 6F 6D 61 69 6E 31  ...host1.domain1
+0040: 03 63 6F 6D 00 C0 0E 00   02 00 01 00 00 8C A0 00  .com............
+0050: 05 02 6E 73 C0 38 C0 51   00 01 00 01 00 00 8C A0  ..ns.8.Q........
+0060: 00 04 7F 00 00 01                                  ......
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetNumericIRRs.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8198882
+ * @summary Tests that we can get the attributes of a DNS entry by naming
+ *          specific RRs by their type codes and "IN" for internet class.
+ *          Omit NAPTR for now because bind doesn't support it.
+ * @modules java.base/sun.security.util
+ * @library ../lib/
+ * @run main GetNumericIRRs
+ */
+
+import javax.naming.directory.Attributes;
+
+public class GetNumericIRRs extends GetRRsBase {
+
+    public static void main(String[] args) throws Exception {
+        new GetNumericIRRs().run(args);
+    }
+
+    /*
+     * Tests that we can get the attributes of a DNS entry by naming
+     * specific RRs by their type codes and "IN" for internet class.
+     * Omit NAPTR for now because bind doesn't support it.
+     */
+    @Override public void runTest() throws Exception {
+        initContext();
+
+        for (int i = 0; i < ROOT_LIMIT; i++) {
+            Attributes retAttrs = getAttributes(getKeys()[i], getNumAttrs()[i]);
+            verifyAttributes(retAttrs, getAttrs()[i]);
+        }
+
+        switchToRootUrl();
+
+        for (int i = ROOT_LIMIT; i < getKeys().length; i++) {
+            Attributes retAttrs = getAttributes(getKeys()[i], getNumAttrs()[i]);
+            verifyAttributes(retAttrs, getAttrs()[i]);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetNumericRRs.dns	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,148 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+################################################################################
+# Capture file for GetNumericRRs.java
+#
+# NOTE: This hexadecimal dump of DNS protocol messages was generated by
+#       running the GetNumericRRs application program against a real DNS
+#       server along with DNSTracer
+#
+################################################################################
+
+# DNS Request
+
+0000: 7C 4B 01 00 00 01 00 00   00 00 00 00 05 68 6F 73  .K...........hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01                                           ...
+
+
+# DNS Response
+
+0000: 7C 4B 85 80 00 01 00 06   00 01 00 01 05 68 6F 73  .K...........hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01 C0 0C 00 10 00   01 00 00 8C A0 00 15 14  ................
+0030: 41 20 76 65 72 79 20 70   6F 70 75 6C 61 72 20 68  A very popular h
+0040: 6F 73 74 2E C0 0C 00 1D   00 01 00 00 8C A0 00 10  ost.............
+0050: 00 12 16 13 88 97 1A 35   69 68 41 38 00 9B 16 58  .......5ihA8...X
+0060: C0 0C 00 0D 00 01 00 00   8C A0 00 13 0C 54 68 65  .............The
+0070: 20 4F 72 69 67 69 6E 61   6C 05 53 75 6E 6E 79 C0   Original.Sunny.
+0080: 0C 00 0F 00 01 00 00 8C   A0 00 12 00 14 05 72 65  ..............re
+0090: 6C 61 79 05 74 65 78 61   73 02 75 73 00 C0 0C 00  lay.texas.us....
+00A0: 0F 00 01 00 00 8C A0 00   0F 00 0A 05 72 65 6C 61  ............rela
+00B0: 79 04 6F 68 69 6F C0 99   C0 0C 00 01 00 01 00 01  y.ohio..........
+00C0: 51 80 00 04 01 02 04 01   C0 12 00 02 00 01 00 00  Q...............
+00D0: 8C A0 00 05 02 6E 73 C0   12 C0 D4 00 01 00 01 00  .....ns.........
+00E0: 00 8C A0 00 04 7F 00 00   01                       .........
+
+
+# DNS Request
+
+0000: 60 6F 01 00 00 01 00 00   00 00 00 00 07 64 6F 6D  `o...........dom
+0010: 61 69 6E 31 03 63 6F 6D   00 00 FF 00 01           ain1.com.....
+
+
+# DNS Response
+
+0000: 60 6F 85 80 00 01 00 03   00 00 00 01 07 64 6F 6D  `o...........dom
+0010: 61 69 6E 31 03 63 6F 6D   00 00 FF 00 01 C0 0C 00  ain1.com........
+0020: 06 00 01 00 00 8C A0 00   26 02 6E 73 C0 0C 0A 70  ........&.ns...p
+0030: 6F 73 74 6D 61 73 74 65   72 C0 0C 00 00 00 01 00  ostmaster.......
+0040: 00 1C 20 00 00 0E 10 00   06 97 80 00 01 51 80 C0  .. ..........Q..
+0050: 0C 00 02 00 01 00 00 8C   A0 00 02 C0 29 C0 0C 00  ............)...
+0060: 10 00 01 00 00 8C A0 00   0C 0B 54 65 73 74 20 64  ..........Test d
+0070: 6F 6D 61 69 6E C0 29 00   01 00 01 00 00 8C A0 00  omain.).........
+0080: 04 7F 00 00 01                                     .....
+
+
+# DNS Request
+
+0000: 97 B5 01 00 00 01 00 00   00 00 00 00 04 69 70 76  .............ipv
+0010: 36 07 64 6F 6D 61 69 6E   31 03 63 6F 6D 00 00 1C  6.domain1.com...
+0020: 00 01                                              ..
+
+
+# DNS Response
+
+0000: 97 B5 85 80 00 01 00 01   00 01 00 01 04 69 70 76  .............ipv
+0010: 36 07 64 6F 6D 61 69 6E   31 03 63 6F 6D 00 00 1C  6.domain1.com...
+0020: 00 01 C0 0C 00 1C 00 01   00 00 8C A0 00 10 00 0A  ................
+0030: 00 0B 00 0C 00 0D 00 0E   00 01 00 02 00 03 C0 11  ................
+0040: 00 02 00 01 00 00 8C A0   00 05 02 6E 73 C0 11 C0  ...........ns...
+0050: 4A 00 01 00 01 00 00 8C   A0 00 04 7F 00 00 01     J..............
+
+
+# DNS Request
+
+0000: 61 7E 01 00 00 01 00 00   00 00 00 00 03 73 75 6E  a............sun
+0010: 07 64 6F 6D 61 69 6E 31   03 63 6F 6D 00 00 05 00  .domain1.com....
+0020: 01                                                 .
+
+
+# DNS Response
+
+0000: 61 7E 85 80 00 01 00 01   00 01 00 01 03 73 75 6E  a............sun
+0010: 07 64 6F 6D 61 69 6E 31   03 63 6F 6D 00 00 05 00  .domain1.com....
+0020: 01 C0 0C 00 05 00 01 00   00 8C A0 00 08 05 68 6F  ..............ho
+0030: 73 74 31 C0 10 C0 10 00   02 00 01 00 00 8C A0 00  st1.............
+0040: 05 02 6E 73 C0 10 C0 41   00 01 00 01 00 00 8C A0  ..ns...A........
+0050: 00 04 7F 00 00 01                                  ......
+
+
+# DNS Request
+
+0000: 7D 9A 01 00 00 01 00 00   00 00 00 00 04 5F 66 74  ............._ft
+0010: 70 04 5F 54 63 70 07 64   6F 6D 61 69 6E 31 03 63  p._Tcp.domain1.c
+0020: 6F 6D 00 00 21 00 01                               om..!..
+
+
+# DNS Response
+
+0000: 7D 9A 85 80 00 01 00 01   00 01 00 02 04 5F 66 74  ............._ft
+0010: 70 04 5F 54 63 70 07 64   6F 6D 61 69 6E 31 03 63  p._Tcp.domain1.c
+0020: 6F 6D 00 00 21 00 01 C0   0C 00 21 00 01 00 00 8C  om..!.....!.....
+0030: A0 00 19 00 01 00 00 00   15 05 68 6F 73 74 34 07  ..........host4.
+0040: 64 6F 6D 61 69 6E 31 03   63 6F 6D 00 C0 3F 00 02  domain1.com..?..
+0050: 00 01 00 00 8C A0 00 05   02 6E 73 C0 3F C0 39 00  .........ns.?.9.
+0060: 01 00 01 00 01 51 80 00   04 01 02 04 04 C0 58 00  .....Q........X.
+0070: 01 00 01 00 00 8C A0 00   04 7F 00 00 01           .............
+
+
+# DNS Request
+
+0000: B2 B9 01 00 00 01 00 00   00 00 00 00 01 31 01 34  .............1.4
+0010: 01 32 01 31 07 69 6E 2D   61 64 64 72 04 61 72 70  .2.1.in-addr.arp
+0020: 61 00 00 0C 00 01                                  a.....
+
+
+# DNS Response
+
+0000: B2 B9 85 80 00 01 00 01   00 01 00 01 01 31 01 34  .............1.4
+0010: 01 32 01 31 07 69 6E 2D   61 64 64 72 04 61 72 70  .2.1.in-addr.arp
+0020: 61 00 00 0C 00 01 C0 0C   00 0C 00 01 00 00 8C A0  a...............
+0030: 00 13 05 68 6F 73 74 31   07 64 6F 6D 61 69 6E 31  ...host1.domain1
+0040: 03 63 6F 6D 00 C0 0E 00   02 00 01 00 00 8C A0 00  .com............
+0050: 05 02 6E 73 C0 38 C0 51   00 01 00 01 00 00 8C A0  ..ns.8.Q........
+0060: 00 04 7F 00 00 01                                  ......
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetNumericRRs.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8198882
+ * @summary Tests that we can get the attributes of a DNS entry by naming
+ *          specific RRs by their type codes. Omit NAPTR for now because
+ *          bind doesn't support it.
+ * @modules java.base/sun.security.util
+ * @library ../lib/
+ * @run main GetNumericRRs
+ */
+
+import javax.naming.directory.Attributes;
+
+public class GetNumericRRs extends GetRRsBase {
+
+    public GetNumericRRs() {
+        // set new test data instead of default value
+        setNumAttrs(new String[][] { { "1", "15", "13", "16" }, { "2", "6" },
+                { "28" }, { "5" }, { "33" }, { "12" }, });
+    }
+
+    public static void main(String[] args) throws Exception {
+        new GetNumericRRs().run(args);
+    }
+
+    /*
+     * Tests that we can get the attributes of a DNS entry by naming
+     * specific RRs by their type codes. Omit NAPTR for now because
+     * bind doesn't support it.
+     */
+    @Override public void runTest() throws Exception {
+        initContext();
+
+        for (int i = 0; i < ROOT_LIMIT; i++) {
+            Attributes retAttrs = getAttributes(getKeys()[i], getNumAttrs()[i]);
+            verifyAttributes(retAttrs, getAttrs()[i]);
+        }
+
+        switchToRootUrl();
+
+        for (int i = ROOT_LIMIT; i < getKeys().length; i++) {
+            Attributes retAttrs = getAttributes(getKeys()[i], getNumAttrs()[i]);
+            verifyAttributes(retAttrs, getAttrs()[i]);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetRRs.dns	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,148 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+################################################################################
+# Capture file for GetRRs.java
+#
+# NOTE: This hexadecimal dump of DNS protocol messages was generated by
+#       running the GetRRs application program against a real DNS
+#       server along with DNSTracer
+#
+################################################################################
+
+# DNS Request
+
+0000: 91 E0 01 00 00 01 00 00   00 00 00 00 05 68 6F 73  .............hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01                                           ...
+
+
+# DNS Response
+
+0000: 91 E0 85 80 00 01 00 06   00 01 00 01 05 68 6F 73  .............hos
+0010: 74 31 07 64 6F 6D 61 69   6E 31 03 63 6F 6D 00 00  t1.domain1.com..
+0020: FF 00 01 C0 0C 00 10 00   01 00 00 8C A0 00 15 14  ................
+0030: 41 20 76 65 72 79 20 70   6F 70 75 6C 61 72 20 68  A very popular h
+0040: 6F 73 74 2E C0 0C 00 1D   00 01 00 00 8C A0 00 10  ost.............
+0050: 00 12 16 13 88 97 1A 35   69 68 41 38 00 9B 16 58  .......5ihA8...X
+0060: C0 0C 00 0D 00 01 00 00   8C A0 00 13 0C 54 68 65  .............The
+0070: 20 4F 72 69 67 69 6E 61   6C 05 53 75 6E 6E 79 C0   Original.Sunny.
+0080: 0C 00 0F 00 01 00 00 8C   A0 00 11 00 0A 05 72 65  ..............re
+0090: 6C 61 79 04 6F 68 69 6F   02 75 73 00 C0 0C 00 0F  lay.ohio.us.....
+00A0: 00 01 00 00 8C A0 00 10   00 14 05 72 65 6C 61 79  ...........relay
+00B0: 05 74 65 78 61 73 C0 98   C0 0C 00 01 00 01 00 01  .texas..........
+00C0: 51 80 00 04 01 02 04 01   C0 12 00 02 00 01 00 00  Q...............
+00D0: 8C A0 00 05 02 6E 73 C0   12 C0 D4 00 01 00 01 00  .....ns.........
+00E0: 00 8C A0 00 04 7F 00 00   01                       .........
+
+
+# DNS Request
+
+0000: 07 37 01 00 00 01 00 00   00 00 00 00 07 64 6F 6D  .7...........dom
+0010: 61 69 6E 31 03 63 6F 6D   00 00 FF 00 01           ain1.com.....
+
+
+# DNS Response
+
+0000: 07 37 85 80 00 01 00 03   00 00 00 01 07 64 6F 6D  .7...........dom
+0010: 61 69 6E 31 03 63 6F 6D   00 00 FF 00 01 C0 0C 00  ain1.com........
+0020: 06 00 01 00 00 8C A0 00   26 02 6E 73 C0 0C 0A 70  ........&.ns...p
+0030: 6F 73 74 6D 61 73 74 65   72 C0 0C 00 00 00 01 00  ostmaster.......
+0040: 00 1C 20 00 00 0E 10 00   06 97 80 00 01 51 80 C0  .. ..........Q..
+0050: 0C 00 02 00 01 00 00 8C   A0 00 02 C0 29 C0 0C 00  ............)...
+0060: 10 00 01 00 00 8C A0 00   0C 0B 54 65 73 74 20 64  ..........Test d
+0070: 6F 6D 61 69 6E C0 29 00   01 00 01 00 00 8C A0 00  omain.).........
+0080: 04 7F 00 00 01                                     .....
+
+
+# DNS Request
+
+0000: FF 0E 01 00 00 01 00 00   00 00 00 00 04 69 70 76  .............ipv
+0010: 36 07 64 6F 6D 61 69 6E   31 03 63 6F 6D 00 00 1C  6.domain1.com...
+0020: 00 01                                              ..
+
+
+# DNS Response
+
+0000: FF 0E 85 80 00 01 00 01   00 01 00 01 04 69 70 76  .............ipv
+0010: 36 07 64 6F 6D 61 69 6E   31 03 63 6F 6D 00 00 1C  6.domain1.com...
+0020: 00 01 C0 0C 00 1C 00 01   00 00 8C A0 00 10 00 0A  ................
+0030: 00 0B 00 0C 00 0D 00 0E   00 01 00 02 00 03 C0 11  ................
+0040: 00 02 00 01 00 00 8C A0   00 05 02 6E 73 C0 11 C0  ...........ns...
+0050: 4A 00 01 00 01 00 00 8C   A0 00 04 7F 00 00 01     J..............
+
+
+# DNS Request
+
+0000: 41 94 01 00 00 01 00 00   00 00 00 00 03 73 75 6E  A............sun
+0010: 07 64 6F 6D 61 69 6E 31   03 63 6F 6D 00 00 05 00  .domain1.com....
+0020: 01                                                 .
+
+
+# DNS Response
+
+0000: 41 94 85 80 00 01 00 01   00 01 00 01 03 73 75 6E  A............sun
+0010: 07 64 6F 6D 61 69 6E 31   03 63 6F 6D 00 00 05 00  .domain1.com....
+0020: 01 C0 0C 00 05 00 01 00   00 8C A0 00 08 05 68 6F  ..............ho
+0030: 73 74 31 C0 10 C0 10 00   02 00 01 00 00 8C A0 00  st1.............
+0040: 05 02 6E 73 C0 10 C0 41   00 01 00 01 00 00 8C A0  ..ns...A........
+0050: 00 04 7F 00 00 01                                  ......
+
+
+# DNS Request
+
+0000: 8B D6 01 00 00 01 00 00   00 00 00 00 04 5F 66 74  ............._ft
+0010: 70 04 5F 54 63 70 07 64   6F 6D 61 69 6E 31 03 63  p._Tcp.domain1.c
+0020: 6F 6D 00 00 21 00 01                               om..!..
+
+
+# DNS Response
+
+0000: 8B D6 85 80 00 01 00 01   00 01 00 02 04 5F 66 74  ............._ft
+0010: 70 04 5F 54 63 70 07 64   6F 6D 61 69 6E 31 03 63  p._Tcp.domain1.c
+0020: 6F 6D 00 00 21 00 01 C0   0C 00 21 00 01 00 00 8C  om..!.....!.....
+0030: A0 00 19 00 01 00 00 00   15 05 68 6F 73 74 34 07  ..........host4.
+0040: 64 6F 6D 61 69 6E 31 03   63 6F 6D 00 C0 3F 00 02  domain1.com..?..
+0050: 00 01 00 00 8C A0 00 05   02 6E 73 C0 3F C0 39 00  .........ns.?.9.
+0060: 01 00 01 00 01 51 80 00   04 01 02 04 04 C0 58 00  .....Q........X.
+0070: 01 00 01 00 00 8C A0 00   04 7F 00 00 01           .............
+
+
+# DNS Request
+
+0000: D9 CF 01 00 00 01 00 00   00 00 00 00 01 31 01 34  .............1.4
+0010: 01 32 01 31 07 69 6E 2D   61 64 64 72 04 61 72 70  .2.1.in-addr.arp
+0020: 61 00 00 0C 00 01                                  a.....
+
+
+# DNS Response
+
+0000: D9 CF 85 80 00 01 00 01   00 01 00 01 01 31 01 34  .............1.4
+0010: 01 32 01 31 07 69 6E 2D   61 64 64 72 04 61 72 70  .2.1.in-addr.arp
+0020: 61 00 00 0C 00 01 C0 0C   00 0C 00 01 00 00 8C A0  a...............
+0030: 00 13 05 68 6F 73 74 31   07 64 6F 6D 61 69 6E 31  ...host1.domain1
+0040: 03 63 6F 6D 00 C0 0E 00   02 00 01 00 00 8C A0 00  .com............
+0050: 05 02 6E 73 C0 38 C0 51   00 01 00 01 00 00 8C A0  ..ns.8.Q........
+0060: 00 04 7F 00 00 01                                  ......
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetRRs.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8198882
+ * @summary Tests that we can get the attributes of a DNS entry by naming
+ *          specific RRs by name. Omit NAPTR for now because bind doesn't
+ *          support it.
+ * @modules java.base/sun.security.util
+ * @library ../lib/
+ * @run main GetRRs
+ */
+
+import javax.naming.directory.Attributes;
+
+public class GetRRs extends GetRRsBase {
+
+    public static void main(String[] args) throws Exception {
+        new GetRRs().run(args);
+    }
+
+    /*
+     * Tests that we can get the attributes of a DNS entry by naming
+     * specific RRs by name. Omit NAPTR for now because bind doesn't
+     * support it.
+     */
+    @Override public void runTest() throws Exception {
+        initContext();
+
+        for (int i = 0; i < ROOT_LIMIT; i++) {
+            Attributes retAttrs = getAttributes(getKeys()[i], getAttrs()[i]);
+            verifyAttributes(retAttrs, getAttrs()[i]);
+        }
+
+        switchToRootUrl();
+
+        for (int i = ROOT_LIMIT; i < getKeys().length; i++) {
+            Attributes retAttrs = getAttributes(getKeys()[i], getAttrs()[i]);
+            verifyAttributes(retAttrs, getAttrs()[i]);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/AttributeTests/GetRRsBase.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.InitialDirContext;
+
+public abstract class GetRRsBase extends DNSTestBase {
+    public static final int ROOT_LIMIT = 5; // point at which to use root ctx
+    private String[] keys;
+    private String[][] numAttrs;
+    private String[][] attrs;
+
+    public GetRRsBase() {
+        // set default test data
+        setKeys(new String[] { "host1", "", "ipv6", "sun", "_ftp._Tcp",
+                "1.4.2.1.in-addr.arpa", });
+        setNumAttrs(new String[][] { { "IN 1", "IN 15", "IN 13", "IN 16" },
+                { "IN 2", "IN 6" }, { "IN 28" }, { "IN 5" }, { "IN 33" },
+                { "IN 12" }, });
+        setAttrs(
+                new String[][] { { "A", "MX", "HINFO", "TXT" }, { "NS", "SOA" },
+                        { "AAAA" }, { "CNAME" }, { "SRV" }, { "PTR" }, });
+    }
+
+    public void initContext() throws Exception {
+        setContext(new InitialDirContext(env()));
+    }
+
+    public void switchToRootUrl() throws NamingException {
+        DNSTestUtils.cleanup(context());
+        env().put(Context.PROVIDER_URL, DNSTestUtils.getRootUrl(env()));
+        setContext(new InitialDirContext(env()));
+    }
+
+    public void verifyAttributes(Attributes attrs, String[] mandatory) {
+        DNSTestUtils.verifySchema(attrs, mandatory, new String[] {});
+    }
+
+    public Attributes getAttributes(String name, String[] attrIds)
+            throws Exception {
+        return context().getAttributes(name, attrIds);
+    }
+
+    public void setKeys(String[] keys) {
+        this.keys = keys;
+    }
+
+    public String[] getKeys() {
+        return keys;
+    }
+
+    public void setNumAttrs(String[][] numAttrs) {
+        this.numAttrs = numAttrs;
+    }
+
+    public String[][] getNumAttrs() {
+        return numAttrs;
+    }
+
+    public void setAttrs(String[][] attrs) {
+        this.attrs = attrs;
+    }
+
+    public String[][] getAttrs() {
+        return attrs;
+    }
+}
--- a/test/jdk/com/sun/jndi/dns/lib/DNSServer.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/com/sun/jndi/dns/lib/DNSServer.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,6 +26,8 @@
 import java.io.IOException;
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
+import java.net.InetAddress;
+import java.net.SocketException;
 import java.nio.ByteBuffer;
 import java.nio.file.Paths;
 import java.util.ArrayList;
@@ -49,7 +51,7 @@
  * Typically, DNS protocol exchange is generated by DNSTracer who captures
  * communication messages between DNS application program and real DNS server
  */
-public class DNSServer implements Runnable {
+public class DNSServer extends Thread implements Server {
 
     public class Pair<F, S> {
         private F first;
@@ -87,19 +89,21 @@
     private boolean loop;
     private final List<Pair<byte[], byte[]>> cache = new ArrayList<>();
     private ByteBuffer reqBuffer = ByteBuffer.allocate(DNS_PACKET_SIZE);
+    private volatile boolean isRunning;
 
-    public DNSServer(DatagramSocket socket, String filename) {
-        this(socket, filename, false);
+    public DNSServer(String filename) throws SocketException {
+        this(filename, false);
     }
 
-    public DNSServer(DatagramSocket socket, String filename, boolean loop) {
-        this.socket = socket;
+    public DNSServer(String filename, boolean loop) throws SocketException {
+        this.socket = new DatagramSocket(0, InetAddress.getLoopbackAddress());
         this.filename = filename;
         this.loop = loop;
     }
 
     public void run() {
         try {
+            isRunning = true;
             System.out.println(
                     "DNSServer: Loading DNS cache data from : " + filename);
             loadCaptureFile(filename);
@@ -112,30 +116,25 @@
             int playbackIndex = 0;
 
             while (playbackIndex < cache.size()) {
-                DatagramPacket reqPacket = new DatagramPacket(reqBuffer.array(),
-                        reqBuffer.array().length);
-                socket.receive(reqPacket);
-
-                System.out.println(
-                        "DNSServer: received query message from " + reqPacket
-                                .getSocketAddress());
+                DatagramPacket reqPacket = receiveQuery();
 
                 if (!verifyRequestMsg(reqPacket, playbackIndex)) {
-                    throw new RuntimeException(
-                            "DNSServer: Error: Failed to verify DNS request. "
-                                    + "Not identical request message : \n"
-                                    + encoder.encodeBuffer(
-                                    Arrays.copyOf(reqPacket.getData(),
-                                            reqPacket.getLength())));
+                    if (playbackIndex > 0 && verifyRequestMsg(reqPacket,
+                            playbackIndex - 1)) {
+                        System.out.println(
+                                "DNSServer: received retry query, resend");
+                        playbackIndex--;
+                    } else {
+                        throw new RuntimeException(
+                                "DNSServer: Error: Failed to verify DNS request. "
+                                        + "Not identical request message : \n"
+                                        + encoder.encodeBuffer(
+                                        Arrays.copyOf(reqPacket.getData(),
+                                                reqPacket.getLength())));
+                    }
                 }
 
-                byte[] payload = generateResponsePayload(reqPacket,
-                        playbackIndex);
-                socket.send(new DatagramPacket(payload, payload.length,
-                        reqPacket.getSocketAddress()));
-                System.out.println(
-                        "DNSServer: send response message to " + reqPacket
-                                .getSocketAddress());
+                sendResponse(reqPacket, playbackIndex);
 
                 playbackIndex++;
                 if (loop && playbackIndex >= cache.size()) {
@@ -145,11 +144,54 @@
 
             System.out.println(
                     "DNSServer: Done for all cached messages playback");
+
+            System.out.println(
+                    "DNSServer: Still listening for possible retry query");
+            while (true) {
+                DatagramPacket reqPacket = receiveQuery();
+
+                // here we only handle the retry query for last one
+                if (!verifyRequestMsg(reqPacket, playbackIndex - 1)) {
+                    throw new RuntimeException(
+                            "DNSServer: Error: Failed to verify DNS request. "
+                                    + "Not identical request message : \n"
+                                    + encoder.encodeBuffer(
+                                    Arrays.copyOf(reqPacket.getData(),
+                                            reqPacket.getLength())));
+                }
+
+                sendResponse(reqPacket, playbackIndex - 1);
+            }
         } catch (Exception e) {
-            System.err.println("DNSServer: Error: " + e);
+            if (isRunning) {
+                System.err.println("DNSServer: Error: " + e);
+                e.printStackTrace();
+            } else {
+                System.out.println("DNSServer: Exit");
+            }
         }
     }
 
+    private DatagramPacket receiveQuery() throws IOException {
+        DatagramPacket reqPacket = new DatagramPacket(reqBuffer.array(),
+                reqBuffer.array().length);
+        socket.receive(reqPacket);
+
+        System.out.println("DNSServer: received query message from " + reqPacket
+                .getSocketAddress());
+
+        return reqPacket;
+    }
+
+    private void sendResponse(DatagramPacket reqPacket, int playbackIndex)
+            throws IOException {
+        byte[] payload = generateResponsePayload(reqPacket, playbackIndex);
+        socket.send(new DatagramPacket(payload, payload.length,
+                reqPacket.getSocketAddress()));
+        System.out.println("DNSServer: send response message to " + reqPacket
+                .getSocketAddress());
+    }
+
     /*
      * Load a capture file containing an DNS protocol exchange in the
      * hexadecimal dump format emitted by sun.misc.HexDumpEncoder:
@@ -299,4 +341,23 @@
         }
         return -1;
     }
+
+    @Override public void stopServer() {
+        isRunning = false;
+        if (socket != null) {
+            try {
+                socket.close();
+            } catch (Exception e) {
+                // ignore
+            }
+        }
+    }
+
+    @Override public int getPort() {
+        if (socket != null) {
+            return socket.getLocalPort();
+        } else {
+            return -1;
+        }
+    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/lib/DNSTestBase.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import javax.naming.directory.DirContext;
+import java.util.Hashtable;
+
+/**
+ * The test base class for DNS related tests, extends TestBase.
+ *
+ * This class override some methods of supper class to provide DNS tests shared
+ * base logic.
+ *
+ * @see TestBase
+ */
+public abstract class DNSTestBase extends TestBase {
+    private Hashtable<Object, Object> env;
+    private DirContext ctx;
+    private boolean localServer;
+
+    public DNSTestBase() {
+        // set default, we will run with local server playback by default
+        setLocalServer(true);
+    }
+
+    @Override public void initTest(String[] args) {
+        // init env which will used later to initial dir context
+        env = DNSTestUtils
+                .initEnv(localServer, this.getClass().getName(), args);
+    }
+
+    @Override public void cleanupTest() {
+        // cleanup dir context
+        DNSTestUtils.cleanup(ctx);
+        // stop local server if there is
+        Server server = (Server) env.get(DNSTestUtils.TEST_DNS_SERVER_THREAD);
+        if (server != null) {
+            server.stopServer();
+        }
+    }
+
+    public Hashtable<Object, Object> env() {
+        if (env == null) {
+            throw new RuntimeException("Test had not been initialized");
+        }
+
+        return env;
+    }
+
+    public DirContext context() {
+        if (ctx == null) {
+            throw new RuntimeException("Context had not been initialized");
+        }
+
+        return ctx;
+    }
+
+    public void setContext(DirContext context) {
+        ctx = context;
+    }
+
+    public void setLocalServer(boolean isRequired) {
+        this.localServer = isRequired;
+    }
+}
--- a/test/jdk/com/sun/jndi/dns/lib/DNSTestUtils.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/com/sun/jndi/dns/lib/DNSTestUtils.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,12 +25,17 @@
 import javax.naming.NamingException;
 import javax.naming.directory.Attributes;
 import java.io.PrintStream;
-import java.net.DatagramSocket;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Hashtable;
 
+/**
+ * This is utility class for DNS test, it contains many helper methods to
+ * support test construction.
+ *
+ * For basic test sequence see TestBase and DNSTestBase.
+ */
 public class DNSTestUtils {
     public static final String TEST_DNS_SERVER_THREAD = "test.dns.server.thread";
     public static final String TEST_DNS_ROOT_URL = "test.dns.root.url";
@@ -38,9 +43,14 @@
 
     protected static boolean debug = true;
 
-    /*
-     * Check that attrs contains the mandatory attributes and the right
-     * objectclass attribute
+    /**
+     * Check that attributes contains the mandatory attributes and the right
+     * objectclass attribute.
+     *
+     * @param attrs     given attributes to verify
+     * @param mandatory given mandatory for verification
+     * @param optional  given optional for verification
+     * @return <tt>true</tt>  if check ok
      */
     public static boolean checkSchema(Attributes attrs, String[] mandatory,
             String[] optional) {
@@ -70,10 +80,18 @@
         return true;
     }
 
-    /*
-     * Process command line arguments and init env
+    /**
+     * Process command line arguments and init env.
+     * This method will prepare default environments which to be used to initial
+     * DirContext.
+     *
+     * @param localServer <tt>true</tt> if this test will run against with local
+     *                    server against dump message playback
+     * @param testname    test case name to identify playback file
+     * @param args        additional arguments for env preparation
+     * @return prepared env which will be used later to initial DirContext
      */
-    public static Hashtable<Object, Object> initEnv(DatagramSocket socket,
+    public static Hashtable<Object, Object> initEnv(boolean localServer,
             String testname, String[] args) {
 
         Hashtable<Object, Object> env = new Hashtable<>();
@@ -89,14 +107,12 @@
 
         boolean traceEnable = false;
         boolean loopPlayback = false;
-        for (int i = 0; i < args.length; i++) {
-            if ((args[i].equals("-D")) && (args.length > i + 1)) {
-                extractProperty(args[++i], env);
-            } else if (args[i].startsWith("-D")) {
-                extractProperty(args[i].substring(2), env);
-            } else if (args[i].equalsIgnoreCase("-trace")) {
+        for (String arg : args) {
+            if (arg.startsWith("-D")) {
+                extractProperty(arg.substring(2), env);
+            } else if (arg.equalsIgnoreCase("-trace")) {
                 traceEnable = true;
-            } else if (args[i].equalsIgnoreCase("-loop")) {
+            } else if (arg.equalsIgnoreCase("-loop")) {
                 loopPlayback = true;
             }
         }
@@ -111,23 +127,25 @@
             env.put(Context.PROVIDER_URL, url + "/" + env.get("DNS_DOMAIN"));
         }
 
-        Runnable inst = null;
+        Thread inst = null;
         if (traceEnable) {
-            inst = createDNSTracer(socket, testname, env);
+            // if trace is enabled, create DNSTracer to dump those message
+            inst = createDNSTracer(testname, env);
         } else {
-            if (socket != null) {
-                inst = createDNSServer(socket, testname, loopPlayback);
+            if (localServer) {
+                // if use local server, create local DNSServer for playback
+                inst = createDNSServer(testname, loopPlayback);
             } else {
                 // for tests which run against remote server
                 // or no server required
-                debug("Skip local DNS Server creation "
-                        + "since DatagramSocket is null");
+                debug("Skip local DNS Server creation ");
             }
         }
 
         if (inst != null) {
-            env.put(TEST_DNS_SERVER_THREAD, startServer(inst));
-            String url = "dns://localhost:" + socket.getLocalPort();
+            inst.start();
+            env.put(TEST_DNS_SERVER_THREAD, inst);
+            String url = "dns://localhost:" + ((Server) inst).getPort();
 
             env.put(TEST_DNS_ROOT_URL, url);
             env.put(Context.PROVIDER_URL, url + "/" + env.get("DNS_DOMAIN"));
@@ -136,8 +154,10 @@
         return env;
     }
 
-    /*
-     * Clean-up the directory context.
+    /**
+     * Clean-up the given directory context.
+     *
+     * @param ctx given context object
      */
     public static void cleanup(Context ctx) {
         if (ctx != null) {
@@ -162,17 +182,19 @@
         }
     }
 
-    public static DNSTracer createDNSTracer(DatagramSocket socket,
-            String testname, Hashtable<Object, Object> env) {
-        if (socket == null) {
-            throw new RuntimeException("Error: failed to create DNSTracer "
-                    + "since DatagramSocket is null");
-        }
-
+    /**
+     * Return new created DNS tracer.
+     *
+     * @param testname test case name to identify playback file
+     * @param env      given env for initialization
+     * @return created DNS tracer
+     * @see DNSTracer
+     */
+    public static DNSTracer createDNSTracer(String testname,
+            Hashtable<Object, Object> env) {
         try {
             PrintStream outStream = new PrintStream(getCaptureFile(testname));
-            return new DNSTracer(socket, outStream,
-                    (String) env.get("DNS_SERVER"),
+            return new DNSTracer(outStream, (String) env.get("DNS_SERVER"),
                     Integer.parseInt((String) env.get("DNS_PORT")));
         } catch (Exception e) {
             throw new RuntimeException(
@@ -180,16 +202,24 @@
         }
     }
 
-    public static DNSServer createDNSServer(DatagramSocket socket,
-            String testname, boolean loop) {
-        if (socket == null) {
-            throw new RuntimeException("Error: failed to create DNSServer "
-                    + "since DatagramSocket is null");
-        }
-
+    /**
+     * Return new created local DNS Server.
+     *
+     * @param testname test case name to identify playback file
+     * @param loop     <tt>true</tt> if DNS server required playback message in loop
+     * @return created local DNS Server
+     * @see DNSServer
+     */
+    public static DNSServer createDNSServer(String testname, boolean loop) {
         String path = getCaptureFile(testname);
         if (Files.exists(Paths.get(path))) {
-            return new DNSServer(socket, path, loop);
+            try {
+                return new DNSServer(path, loop);
+            } catch (Exception e) {
+                throw new RuntimeException(
+                        "Error: failed to create DNSServer : " + e.getMessage(),
+                        e);
+            }
         } else {
             throw new RuntimeException(
                     "Error: failed to create DNSServer, not found dns "
@@ -197,22 +227,32 @@
         }
     }
 
-    public static Thread startServer(Runnable runnable) {
-        Thread thread = new Thread(runnable);
-        thread.start();
-        return thread;
-    }
-
+    /**
+     * Return dns message capture file path.
+     *
+     * @param testname test case name to identify playback file
+     * @return capture file path
+     */
     public static String getCaptureFile(String testname) {
         return Paths.get(System.getProperty("test.src"))
                 .resolve(testname + ".dns").toString();
     }
 
+    /**
+     * Enable hosts file.
+     *
+     * @param hostsFile given hosts file
+     */
     public static void enableHostsFile(String hostsFile) {
         System.out.println("Enable jdk.net.hosts.file = " + hostsFile);
         System.setProperty("jdk.net.hosts.file", hostsFile);
     }
 
+    /**
+     * Enable hosts file by given searching depth.
+     *
+     * @param depth given depth for searching hosts file
+     */
     public static void enableHostsFile(int depth) {
         Path path = Paths.get(System.getProperty("test.src", "."))
                 .toAbsolutePath();
@@ -230,12 +270,25 @@
         }
     }
 
+    /**
+     * Print given object if debug enabled.
+     *
+     * @param object given object to print
+     */
     public static void debug(Object object) {
         if (debug) {
             System.out.println(object);
         }
     }
 
+    /**
+     * Verify attributes contains the mandatory attributes and the right
+     * objectclass attribute, will throw RuntimeException if verify failed.
+     *
+     * @param attrs     given attributes to verify
+     * @param mandatory given mandatory for verification
+     * @param optional  given optional for verification
+     */
     public static void verifySchema(Attributes attrs, String[] mandatory,
             String[] optional) {
         debug(attrs);
@@ -243,4 +296,32 @@
             throw new RuntimeException("Check schema failed.");
         }
     }
+
+    /**
+     * Return dns root url.
+     *
+     * @param env given env
+     * @return dns root url
+     */
+    public static String getRootUrl(Hashtable<Object, Object> env) {
+        return (String) env.get(TEST_DNS_ROOT_URL);
+    }
+
+    /**
+     * Assemble a fully-qualified domain name from the base component and the
+     * domain name.
+     *
+     * @param base    given base component
+     * @param env     given env
+     * @param primary <tt>true</tt> if primary domain
+     * @return assembled fully-qualified domain name
+     */
+    public static String buildFqdn(String base, Hashtable<Object, Object> env,
+            boolean primary) {
+        String domain = (String) (primary ?
+                env.get("DNS_DOMAIN") :
+                env.get("FOREIGN_DOMAIN"));
+
+        return base + "." + domain;
+    }
 }
--- a/test/jdk/com/sun/jndi/dns/lib/DNSTracer.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/com/sun/jndi/dns/lib/DNSTracer.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,6 +26,7 @@
 import java.io.PrintStream;
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
+import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
 import java.net.SocketException;
@@ -46,7 +47,7 @@
  *
  * Typically, the capture file data will be used by DNSServer for playback
  */
-public class DNSTracer implements Runnable {
+public class DNSTracer extends Thread implements Server {
     public static final int DNS_DEFAULT_PORT = 53;
     public static final int DNS_PACKET_SIZE = 512;
     static HexDumpEncoder encoder = new HexDumpEncoder();
@@ -56,28 +57,30 @@
     private ByteBuffer reqBuffer = ByteBuffer.allocate(DNS_PACKET_SIZE);
     private ByteBuffer resBuffer = ByteBuffer.allocate(DNS_PACKET_SIZE);
     private PrintStream out = null;
+    private volatile boolean isRunning;
 
-    public DNSTracer(DatagramSocket socket, String dnsHostname) {
-        this(socket, dnsHostname, DNS_DEFAULT_PORT);
+    public DNSTracer(String dnsHostname) throws SocketException {
+        this(dnsHostname, DNS_DEFAULT_PORT);
     }
 
-    public DNSTracer(DatagramSocket socket, PrintStream outStream,
-            String dnsHostname) {
-        this(socket, outStream, dnsHostname, DNS_DEFAULT_PORT);
+    public DNSTracer(PrintStream outStream, String dnsHostname)
+            throws SocketException {
+        this(outStream, dnsHostname, DNS_DEFAULT_PORT);
     }
 
-    public DNSTracer(DatagramSocket socket, String dnsHostname, int dnsPort) {
-        this(socket, System.out, dnsHostname, dnsPort);
+    public DNSTracer(String dnsHostname, int dnsPort) throws SocketException {
+        this(System.out, dnsHostname, dnsPort);
     }
 
-    public DNSTracer(DatagramSocket socket, PrintStream outStream,
-            String dnsHostname, int dnsPort) {
-        inSocket = socket;
+    public DNSTracer(PrintStream outStream, String dnsHostname, int dnsPort)
+            throws SocketException {
+        inSocket = new DatagramSocket(0, InetAddress.getLoopbackAddress());
         out = outStream;
         dnsServerAddress = new InetSocketAddress(dnsHostname, dnsPort);
     }
 
     public void run() {
+        isRunning = true;
         System.out.println(
                 "DNSTracer: listening on port " + inSocket.getLocalPort());
 
@@ -116,7 +119,7 @@
                         resPacket.getLength(), reqPacket.getSocketAddress()));
             }
         } catch (SocketException se) {
-            if (inSocket.isClosed()) {
+            if (!isRunning) {
                 out.flush();
                 System.out.println("DNSTracer: Exit");
             } else {
@@ -127,4 +130,22 @@
         }
     }
 
+    @Override public void stopServer() {
+        isRunning = false;
+        if (inSocket != null) {
+            try {
+                inSocket.close();
+            } catch (Exception e) {
+                // ignore
+            }
+        }
+    }
+
+    @Override public int getPort() {
+        if (inSocket != null) {
+            return inSocket.getLocalPort();
+        } else {
+            return -1;
+        }
+    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/lib/Server.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * The interface of Server.
+ */
+public interface Server {
+    /**
+     * Stop server.
+     */
+    void stopServer();
+
+    /**
+     * Return local port which server is listening.
+     *
+     * @return port which server is listening
+     */
+    int getPort();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jndi/dns/lib/TestBase.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * The test base class for JNDI related tests.
+ *
+ * run() will be the entry to launch whole tests, base test sequence is
+ * initRes(), initTest(), setupTest() and launch().
+ *
+ * launch() will call real test logic runTest() which required to be implemented
+ * in test class.
+ *
+ * exception handling logic should be placed in handleException().
+ *
+ * cleanup related should be placed in cleanupTest which been called in finally
+ * block.
+ */
+public abstract class TestBase {
+
+    /**
+     * The entry to the test.
+     *
+     * @param args given input arguments
+     * @throws Exception if any exception
+     */
+    public void run(String[] args) throws Exception {
+        initRes();
+        initTest(args);
+        setupTest();
+        launch();
+    }
+
+    /**
+     * Initial local resources, such as socket.
+     *
+     * @throws Exception if any exception
+     */
+    public void initRes() throws Exception {
+    }
+
+    /**
+     * Initial test with given arguments.
+     *
+     * @param args given arguments
+     */
+    public void initTest(String[] args) {
+    }
+
+    /**
+     * Setup test.
+     */
+    public void setupTest() {
+    }
+
+    /**
+     * Launch test.
+     *
+     * @throws Exception if any exception
+     */
+    public void launch() throws Exception {
+        try {
+            runTest();
+        } catch (Exception e) {
+            if (!handleException(e)) {
+                throw e;
+            }
+        } finally {
+            cleanupTest();
+        }
+    }
+
+    /**
+     * The real test logic to run, this required to be implemented in test class.
+     *
+     * @throws Exception if any exception
+     */
+    public abstract void runTest() throws Exception;
+
+    /**
+     * Handle test exception.
+     *
+     * @param e exception which been thrown during test runTest()
+     * @return <tt>true</tt> if given exception is expected
+     */
+    public boolean handleException(Exception e) {
+        return false;
+    }
+
+    /**
+     * Cleanup test.
+     */
+    public abstract void cleanupTest();
+}
--- a/test/jdk/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh	Fri Jul 27 12:16:01 2018 +0100
@@ -122,7 +122,7 @@
     fi
     ;;
 
-  SunOS | Linux )
+  AIX | Linux | SunOS )
     ${COMPILEJAVA}/bin/javac ${TESTJAVACOPTS} \
                          --add-exports java.desktop/sun.awt=ALL-UNNAMED \
                          --add-exports java.desktop/sun.awt.X11=ALL-UNNAMED ${CP} \
--- a/test/jdk/java/net/Socket/ExceptionText.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/java/net/Socket/ExceptionText.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,18 +25,43 @@
  * @test
  * @library /test/lib
  * @build jdk.test.lib.Utils
- * @bug 8204233
+ * @bug 8204233 8207846
  * @summary Add configurable option for enhanced socket IOException messages
- * @run main/othervm ExceptionText
- * @run main/othervm -Djdk.net.includeInExceptions= ExceptionText
- * @run main/othervm -Djdk.net.includeInExceptions=hostInfo ExceptionText
- * @run main/othervm -Djdk.net.includeInExceptions=somethingElse ExceptionText
+ * @run main/othervm
+ *       ExceptionText
+ *       WITHOUT_Enhanced_Text
+ * @run main/othervm
+ *       -Djdk.includeInExceptions=
+ *       ExceptionText
+ *       WITHOUT_Enhanced_Text
+ * @run main/othervm
+ *       -Djdk.includeInExceptions=somethingElse
+ *       ExceptionText
+ *       WITHOUT_Enhanced_Text
+ * @run main/othervm
+ *       -Djdk.includeInExceptions=blah,blah,blah,
+ *       ExceptionText
+ *       WITHOUT_Enhanced_Text
+ * @run main/othervm
+ *       -Djdk.includeInExceptions=hostInfo
+ *       ExceptionText
+ *       expectEnhancedText
+ * @run main/othervm
+ *       -Djdk.includeInExceptions=foo,hostinfo,bar
+ *       ExceptionText
+ *       expectEnhancedText
+ * @run main/othervm
+ *       -Djdk.includeInExceptions=",HOSTINFO,"
+ *       ExceptionText
+ *       expectEnhancedText
  */
 
-import java.net.*;
 import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.nio.channels.AsynchronousSocketChannel;
 import java.nio.channels.ClosedChannelException;
-import java.nio.channels.*;
+import java.nio.channels.SocketChannel;
 import java.util.concurrent.ExecutionException;
 import jdk.test.lib.Utils;
 
@@ -44,16 +69,15 @@
 
     enum TestTarget {SOCKET, CHANNEL, ASYNC_CHANNEL};
 
-    static boolean propEnabled() {
-        String val = System.getProperty("jdk.net.includeInExceptions");
-        if ("hostinfo".equalsIgnoreCase(val))
-            return true;
-        return false;
-    }
-
     public static void main(String args[]) throws Exception {
-        boolean prop = propEnabled();
-        test(prop);
+        String passOrFail = args[0];
+        boolean expectEnhancedText;
+        if (passOrFail.equals("expectEnhancedText")) {
+            expectEnhancedText = true;
+        } else {
+            expectEnhancedText = false;
+        }
+        test(expectEnhancedText);
     }
 
     static final InetSocketAddress dest  = Utils.refusingEndpoint();
--- a/test/jdk/java/nio/channels/Selector/SelectWithConsumer.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/java/nio/channels/Selector/SelectWithConsumer.java	Fri Jul 27 12:16:01 2018 +0100
@@ -411,8 +411,6 @@
             int n = sel.select(k -> assertTrue(false), 60*1000);
             long duration = System.currentTimeMillis() - start;
             assertTrue(n == 0);
-            assertTrue(duration > 500 && duration < 5000,
-                    "select took " + duration + " ms");
             assertTrue(Thread.currentThread().isInterrupted());
             assertTrue(sel.isOpen());
         } finally {
@@ -550,12 +548,18 @@
             // write to sink to ensure that the source is readable
             sink.write(messageBuffer());
 
+            source.configureBlocking(false);
+            SelectionKey key1 = source.register(sel, SelectionKey.OP_READ);
+            // make sure pipe source is readable before we do following checks.
+            // this is sometime necessary on windows where pipe is implemented
+            // as a pair of connected socket, so there is no guarantee that written
+            // bytes on sink side is immediately available on source side.
+            sel.select();
+
             sink.configureBlocking(false);
-            source.configureBlocking(false);
-            SelectionKey key1 = sink.register(sel, SelectionKey.OP_WRITE);
-            SelectionKey key2 = source.register(sel, SelectionKey.OP_READ);
+            SelectionKey key2 = sink.register(sel, SelectionKey.OP_WRITE);
+            sel.selectNow();
 
-            sel.selectNow();
             assertTrue(sel.keys().contains(key1));
             assertTrue(sel.keys().contains(key2));
             assertTrue(sel.selectedKeys().contains(key1));
--- a/test/jdk/java/util/TimeZone/Bug8149452.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/java/util/TimeZone/Bug8149452.java	Fri Jul 27 12:16:01 2018 +0100
@@ -20,10 +20,14 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
-/*
+ /*
  * @test
- * @bug 8149452 8151876 8181157
- * @summary Check the missing time zone names.
+ * @bug 8149452 8151876 8181157 8206965
+ * @modules java.base/sun.util.calendar
+ * @run main/othervm -Duser.language=de -Duser.country=DE Bug8149452
+ * @run main/othervm -Duser.language=ja -Duser.country=JP Bug8149452
+ * @run main/othervm -Duser.language=en -Duser.country=US Bug8149452
+ * @summary Check the missing time zone names for English, German and Japanese locales.
  */
 import java.text.DateFormatSymbols;
 import java.util.ArrayList;
@@ -34,21 +38,6 @@
 public class Bug8149452 {
 
     public static void main(String[] args) {
-        // These zone ids are new in tzdb and yet to be reflected in
-        // CLDR data. Needs to be excluded from the test.
-        // This list is as of CLDR version 29, and should be examined
-        // on the CLDR data upgrade.
-        List<String> NEW_ZONEIDS = List.of(
-                            "America/Punta_Arenas",
-                            "Asia/Atyrau",
-                            "Asia/Barnaul",
-                            "Asia/Famagusta",
-                            "Asia/Tomsk",
-                            "Europe/Astrakhan",
-                            "Europe/Kirov",
-                            "Europe/Saratov",
-                            "Europe/Ulyanovsk");
-
         List<String> listNotFound = new ArrayList<>();
         String[][] zoneStrings = DateFormatSymbols.getInstance()
                 .getZoneStrings();
@@ -57,8 +46,7 @@
                     .anyMatch(zone -> tzID.equalsIgnoreCase(zone[0]))) {
                 // to ignore names for Etc/GMT[+-][0-9]+ which are not supported
                 if (!tzID.startsWith("Etc/GMT")
-                        && !tzID.startsWith("GMT")
-                        && !NEW_ZONEIDS.contains(tzID)) {
+                        && !tzID.startsWith("GMT")) {
                     listNotFound.add(tzID);
                 }
             }
@@ -68,7 +56,5 @@
             throw new RuntimeException("Test Failed: Time Zone Strings for "
                     + listNotFound + " not found");
         }
-
     }
-
 }
--- a/test/jdk/java/util/logging/LocalizedLevelName.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/java/util/logging/LocalizedLevelName.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,8 +37,8 @@
         "SEVERE",  Locale.ENGLISH,                 "Severe",       Level.SEVERE,
         "WARNING", Locale.JAPANESE,                "\u8B66\u544A", Level.WARNING,
         "INFO",    Locale.SIMPLIFIED_CHINESE,      "\u4FE1\u606F", Level.INFO,
-        "SEVERE",  Locale.TRADITIONAL_CHINESE,     "\u56B4\u91CD", Level.SEVERE,
-        "CONFIG",  Locale.forLanguageTag("zh-HK"), "\u7D44\u614B", Level.CONFIG,
+        "SEVERE",  Locale.SIMPLIFIED_CHINESE,      "\u4E25\u91CD", Level.SEVERE,
+        "CONFIG",  Locale.forLanguageTag("zh-CN"), "\u914D\u7F6E", Level.CONFIG,
         "ALL",     Locale.ROOT,                    "All",          Level.ALL,
         "SEVERE",  Locale.ROOT,                    "Severe",       Level.SEVERE,
         "WARNING", Locale.ROOT,                    "Warning",      Level.WARNING,
--- a/test/jdk/javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java	Fri Jul 27 12:16:01 2018 +0100
@@ -41,7 +41,7 @@
 
 /**
  * @test
- * @bug 8132119 8168992 8169897
+ * @bug 8132119 8168992 8169897 8207941
  * @author Alexandr Scherbatiy
  * @summary Provide public API for text related methods in SwingBasicGraphicsUtils2
  */
@@ -277,14 +277,33 @@
         return comp;
     }
 
+    private static String getFontName(String fn, String[] fontNames) {
+        String fontName = null;
+        for (String name : fontNames) {
+            if (fn.equals(name)) {
+                fontName = name;
+                break;
+            }
+        }
+        return fontName;
+    }
+
     private static Font getFont() {
         GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
         String[] fontNames = ge.getAvailableFontFamilyNames();
-        String fontName = fontNames[0];
-        for (String name : fontNames) {
-            if ("Arial".equals(name)) {
-                fontName = name;
-                break;
+
+        // We do not have Arial on all systems so provide some reasonable fallbacks.
+        // In case the fallbacks are not available as well, choose as last fallback
+        // the first font - however this might be a problematic choice.
+        String fontName = getFontName("Arial", fontNames);
+        if (fontName == null) {
+            fontName = getFontName("Bitstream Charter", fontNames);
+            if (fontName == null) {
+                fontName = getFontName("Dialog", fontNames);
+                if (fontName == null) {
+                    fontName = fontNames[0];
+                    System.out.println("warning - preferred fonts not on the system, fall back to first font " + fontName);
+                }
             }
         }
         return new Font(fontName, Font.PLAIN, 30);
--- a/test/jdk/jdk/jfr/api/consumer/TestFieldAccess.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestFieldAccess.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestFieldAccess
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestGetStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestGetStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -42,10 +42,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary Verifies that a recorded JFR event has the correct stack trace info
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestGetStackTrace
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestHiddenMethod.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestHiddenMethod.java	Fri Jul 27 12:16:01 2018 +0100
@@ -42,9 +42,10 @@
 import jdk.test.lib.jfr.Events;
 
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @library /test/lib
  * @modules java.scripting
--- a/test/jdk/jdk/jfr/api/consumer/TestMethodGetModifiers.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestMethodGetModifiers.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,9 +39,10 @@
 import jdk.test.lib.jfr.SimpleEvent;
 
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -Xint jdk.jfr.api.consumer.TestMethodGetModifiers
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestReadTwice.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestReadTwice.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.test.lib.Utils;
 
 
-/*
+/**
  * @test
  * @summary Reads the recorded file two times and verifies that both reads are the same
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestReadTwice
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordedClassLoader.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedClassLoader.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.TestClassLoader;
 
-/*
+/**
  * @test
  * @summary Verifies the methods of the RecordedClassLoader
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordedClassLoader
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordedEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Verifies the methods of the RecordedEvent
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordedEvent
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordedEventGetThread.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedEventGetThread.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary Tests that the RecordedEvent.getThread() returns th expected info
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordedEventGetThread
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordedEventGetThreadOther.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedEventGetThreadOther.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.Utils;
 
-/*
+/**
  * @test
  * @summary Tests that the RecordedEvent.getThread() returns th expected info
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordedEventGetThreadOther
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordedFrame.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedFrame.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.jfr.SimpleEvent;
 
 
-/*
+/**
  * @test
  * @summary Simple test for RecordedFrame APIs
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -Xint  -XX:+UseInterpreter -Dinterpreted=true  jdk.jfr.api.consumer.TestRecordedFrame
  * @run main/othervm -Xcomp -XX:-UseInterpreter -Dinterpreted=false jdk.jfr.api.consumer.TestRecordedFrame
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordedFullStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedFullStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,9 +40,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.RecurseThread;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordedFullStackTrace
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordedInstantEventTimestamp.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedInstantEventTimestamp.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary Tests that an instant event gets recorded with its start time equal to its end time
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordedInstantEventTimestamp
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordedMethodDescriptor.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedMethodDescriptor.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,9 +40,10 @@
 import jdk.test.lib.jfr.Events;
 
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordedMethodDescriptor
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordedObject.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedObject.java	Fri Jul 27 12:16:01 2018 +0100
@@ -47,10 +47,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Verifies the methods of the RecordedObject
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordedObject
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordedThreadGroupParent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedThreadGroupParent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary Tests getParent method in RecordedThreadGroup
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordedThreadGroupParent
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordingFile.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordingFile.java	Fri Jul 27 12:16:01 2018 +0100
@@ -49,10 +49,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.Utils;
 
-/*
+/**
  * @test
  * @summary Verifies that all methods in RecordingFIle are working
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordingFile
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordingFileReadEventEof.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordingFileReadEventEof.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary Verifies that RecordingFile.readEvent() throws EOF when past the last record
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordingFileReadEventEof
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestRecordingInternals.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordingInternals.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary Tests that chunks are read in order and constant pools from multiple chunks can be read
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestRecordingInternals
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestSingleRecordedEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestSingleRecordedEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Verifies that a single JFR event is recorded as expected
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestSingleRecordedEvent
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestToString.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestToString.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Sanity checks that RecordedEvent#toString returns something valid
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.consumer.TestToString
  */
--- a/test/jdk/jdk/jfr/api/consumer/TestValueDescriptorRecorded.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/consumer/TestValueDescriptorRecorded.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.jfr.Events;
 
 
-/*
+/**
  * @test
  * @summary Verifies that the recorded value descriptors are correct
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm  jdk.jfr.api.consumer.TestValueDescriptorRecorded
  */
--- a/test/jdk/jdk/jfr/api/event/TestAbstractEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestAbstractEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Tests that abstract events are not part of metadata
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestAbstractEvent
  */
--- a/test/jdk/jdk/jfr/api/event/TestBeginEnd.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestBeginEnd.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary Test for RecordedEvent.getDuration()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestBeginEnd
  */
--- a/test/jdk/jdk/jfr/api/event/TestClinitRegistration.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestClinitRegistration.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test enable/disable event and verify recording has expected events.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestClinitRegistration
  */
--- a/test/jdk/jdk/jfr/api/event/TestClonedEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestClonedEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Tests that a cloned event can be successfully committed.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestClonedEvent
  */
--- a/test/jdk/jdk/jfr/api/event/TestEnableDisable.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestEnableDisable.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test enable/disable event and verify recording has expected events.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestEnableDisable
  */
--- a/test/jdk/jdk/jfr/api/event/TestEventFactory.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestEventFactory.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.Asserts;
 
 
-/*
+/**
  * @test
  * @summary EventFactory simple test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestEventFactory
  */
--- a/test/jdk/jdk/jfr/api/event/TestEventFactoryRegisterTwice.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestEventFactoryRegisterTwice.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.Asserts;
 
 
-/*
+/**
  * @test
  * @summary Verifies that EventFactory can register the same event twice
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestEventFactoryRegisterTwice
  */
--- a/test/jdk/jdk/jfr/api/event/TestEventFactoryRegistration.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestEventFactoryRegistration.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.Asserts;
 
 
-/*
+/**
  * @test
  * @summary EventFactory register/unregister API test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestEventFactoryRegistration
  */
--- a/test/jdk/jdk/jfr/api/event/TestExtends.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestExtends.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test with event class inheritance
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestExtends
  */
--- a/test/jdk/jdk/jfr/api/event/TestGetDuration.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestGetDuration.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary Test for RecordedEvent.getDuration()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestGetDuration
  */
--- a/test/jdk/jdk/jfr/api/event/TestIsEnabled.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestIsEnabled.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary Test Event.isEnabled()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestIsEnabled
  */
--- a/test/jdk/jdk/jfr/api/event/TestIsEnabledMultiple.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestIsEnabledMultiple.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test Event.isEnabled() with multiple recordings
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestIsEnabledMultiple
  */
--- a/test/jdk/jdk/jfr/api/event/TestOwnCommit.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestOwnCommit.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Use custom event that reuse method names begin, end and commit.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestOwnCommit
  */
--- a/test/jdk/jdk/jfr/api/event/TestShouldCommit.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestShouldCommit.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test enable/disable event and verify recording has expected events.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -Xlog:jfr+event+setting=trace jdk.jfr.api.event.TestShouldCommit
  */
--- a/test/jdk/jdk/jfr/api/event/TestStaticEnable.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/TestStaticEnable.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.jfr.consumer.RecordedEvent;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Enable an event from a static function in the event.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.TestStaticEnable
  */
--- a/test/jdk/jdk/jfr/api/event/dynamic/TestDynamicAnnotations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/dynamic/TestDynamicAnnotations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -51,9 +51,10 @@
 import jdk.jfr.consumer.RecordedEvent;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.dynamic.TestDynamicAnnotations
  */
--- a/test/jdk/jdk/jfr/api/event/dynamic/TestEventFactory.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/event/dynamic/TestEventFactory.java	Fri Jul 27 12:16:01 2018 +0100
@@ -53,9 +53,10 @@
 import jdk.test.lib.jfr.Events;
 
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.event.dynamic.TestEventFactory
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestAddListenerTwice.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestAddListenerTwice.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 import jdk.jfr.Recording;
 import jdk.jfr.RecordingState;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.flightrecorder.TestAddListenerTwice
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestAddPeriodicEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestAddPeriodicEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.jfr.FlightRecorder;
 import jdk.jfr.Recording;
 
-/*
+/**
  * @test
  * @summary
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestAddPeriodicEvent
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestFlightRecorderListenerRecorderInitialized.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestFlightRecorderListenerRecorderInitialized.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.jfr.FlightRecorder;
 import jdk.jfr.FlightRecorderListener;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestFlightRecorderListenerRecorderInitialized
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestGetEventTypes.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestGetEventTypes.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.jfr.consumer.RecordedEvent;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm/timeout=600 jdk.jfr.api.flightrecorder.TestGetEventTypes
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestGetPlatformRecorder.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestGetPlatformRecorder.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 
 import jdk.jfr.FlightRecorder;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestGetPlatformRecorder
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestGetRecordings.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestGetRecordings.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.jfr.FlightRecorder;
 import jdk.jfr.Recording;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestGetRecordings
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestGetSettings.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestGetSettings.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.jfr.EventType;
 import jdk.jfr.Recording;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestGetSettings
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestIsAvailable.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestIsAvailable.java	Fri Jul 27 12:16:01 2018 +0100
@@ -28,9 +28,10 @@
 import jdk.jfr.FlightRecorder;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -XX:+FlightRecorder jdk.jfr.api.flightrecorder.TestIsAvailable true
  * @run main/othervm -XX:-FlightRecorder jdk.jfr.api.flightrecorder.TestIsAvailable  false
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestIsInitialized.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestIsInitialized.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 import jdk.jfr.FlightRecorderListener;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestIsInitialized
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestListener.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestListener.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 import jdk.jfr.Recording;
 import jdk.jfr.RecordingState;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.flightrecorder.TestListener
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestListenerNull.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestListenerNull.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 
 import jdk.jfr.FlightRecorder;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestListenerNull
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestPeriodicEventsSameHook.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestPeriodicEventsSameHook.java	Fri Jul 27 12:16:01 2018 +0100
@@ -28,10 +28,11 @@
 import jdk.jfr.Event;
 import jdk.jfr.FlightRecorder;
 
-/*
+/**
  * @test
  * @summary Check that an IllegalArgumentException is thrown if event is added twice
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestPeriodicEventsSameHook
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestRecorderInitializationCallback.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestRecorderInitializationCallback.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.jfr.FlightRecorder;
 import jdk.jfr.FlightRecorderListener;
 
-/*
+/**
  * @test
  * @summary Test Flight Recorder initialization callback is only called once
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestRecorderInitializationCallback
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestRegisterUnregisterEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestRegisterUnregisterEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.jfr.EventType;
 import jdk.jfr.FlightRecorder;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestRegisterUnregisterEvent
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestSettingsControl.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestSettingsControl.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.jfr.SettingControl;
 import jdk.jfr.SettingDefinition;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestSettingsControl
  */
--- a/test/jdk/jdk/jfr/api/flightrecorder/TestSnapshot.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/flightrecorder/TestSnapshot.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,8 +40,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/* @test
+/**
+ * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.flightrecorder.TestSnapshot
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestCategory.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestCategory.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.jfr.EventType;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestCategory
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestContentType.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestContentType.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,9 +39,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestContentType
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestDescription.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestDescription.java	Fri Jul 27 12:16:01 2018 +0100
@@ -41,9 +41,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleSetting;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestDescription
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestDynamicAnnotation.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestDynamicAnnotation.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.jfr.AnnotationElement;
 import jdk.jfr.MetadataDefinition;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestDynamicAnnotation
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestEnabled.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestEnabled.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestEnabled
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestExperimental.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestExperimental.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestExperimental
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestFieldAnnotations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestFieldAnnotations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,9 +39,10 @@
 import jdk.jfr.ValueDescriptor;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestFieldAnnotations
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestHasValue.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestHasValue.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.jfr.Timestamp;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestHasValue
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestInheritedAnnotations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestInheritedAnnotations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -48,9 +48,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestInheritedAnnotations
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestLabel.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestLabel.java	Fri Jul 27 12:16:01 2018 +0100
@@ -42,9 +42,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleSetting;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestLabel
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestMetadata.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestMetadata.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestMetadata
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestName.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestName.java	Fri Jul 27 12:16:01 2018 +0100
@@ -42,9 +42,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleSetting;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestName
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestPeriod.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestPeriod.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestLabel
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestRegistered.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestRegistered.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.jfr.EventType;
 import jdk.jfr.FlightRecorder;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestRegistered
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestRegisteredFalseAndRunning.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestRegisteredFalseAndRunning.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 import jdk.jfr.Recording;
 import jdk.jfr.Registered;
 
-/*
+/**
  * @test Tests that commit doesn't throw exception when an event has not been registered.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestRegisteredFalseAndRunning
  * @run main/othervm -XX:FlightRecorderOptions=retransform=false jdk.jfr.api.metadata.annotations.TestRegisteredFalseAndRunning
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestRelational.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestRelational.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,9 +40,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestRelational
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestSimpleMetadataEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestSimpleMetadataEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.jfr.EventType;
 import jdk.jfr.MetadataDefinition;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestSimpleMetadataEvent
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestStackTrace
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestThreshold.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestThreshold.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestThreshold
  */
--- a/test/jdk/jdk/jfr/api/metadata/annotations/TestTypesIdentical.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestTypesIdentical.java	Fri Jul 27 12:16:01 2018 +0100
@@ -51,9 +51,10 @@
 import jdk.jfr.Unsigned;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.annotations.TestTypesIdentical
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetAnnotation.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetAnnotation.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.jfr.Label;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test getAnnotations()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.eventtype.TestGetAnnotation
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetAnnotationElements.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetAnnotationElements.java	Fri Jul 27 12:16:01 2018 +0100
@@ -62,10 +62,11 @@
 import jdk.jfr.ValueDescriptor;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test for AnnotationElement.getAnnotationElements()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.eventtype.TestGetAnnotationElements
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetAnnotations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetAnnotations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.jfr.Period;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test getAnnotations()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.eventtype.TestGetAnnotations
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetCategory.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetCategory.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.jfr.EventType;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test setName().
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.eventtype.TestGetCategory
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetDefaultValues.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetDefaultValues.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test getDefaultValues()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.eventtype.TestGetDefaultValues
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetDescription.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetDescription.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.jfr.Label;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test descriptive annotations for EventType
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.eventtype.TestGetDescription
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetEventType.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetEventType.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,10 +29,11 @@
 import jdk.jfr.EventType;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test getEventType()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.eventtype.TestGetEventType
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetField.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetField.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.jfr.ValueDescriptor;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test getField()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.eventtype.TestGetField
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetFields.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetFields.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.jfr.ValueDescriptor;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test getFields()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.eventtype.TestGetFields
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetSettings.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestGetSettings.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.jfr.SettingDescriptor;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test getSettings()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.eventtype.TestGetSettings
  */
--- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestUnloadingEventClass.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestUnloadingEventClass.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.jfr.internal.JVM;
 import jdk.test.lib.Utils;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test that verifies event metadata is removed when an event class is unloaded.
+ * @requires vm.hasJFR
  *
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
--- a/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestDefaultValue.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestDefaultValue.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,10 +29,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test SettingDescriptor.getName()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.settingdescriptor.TestDefaultValue
  */
--- a/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetAnnotation.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetAnnotation.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test SettingDescriptor.getAnnotation();
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.settingdescriptor.TestGetAnnotation
  */
--- a/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetAnnotationElement.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetAnnotationElement.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test SettingDescriptor.getAnnotationElements()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.settingdescriptor.TestGetAnnotationElement
  */
--- a/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetContentType.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetContentType.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test SettingDescriptor.getContentType()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.settingdescriptor.TestGetDescription
  */
--- a/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetDescription.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetDescription.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test SettingDescriptor.getDescription()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.settingdescriptor.TestGetDescription
  */
--- a/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetLabel.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetLabel.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test SettingDescriptor.getLabel()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.settingdescriptor.TestGetLabel
  */
--- a/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetName.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetName.java	Fri Jul 27 12:16:01 2018 +0100
@@ -28,10 +28,11 @@
 import jdk.jfr.SettingDescriptor;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test SettingDescriptor.getName()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.settingdescriptor.TestGetName
  */
--- a/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetTypeId.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetTypeId.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,10 +29,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test SettingDescriptor.getTypeId()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.settingdescriptor.TestGetTypeId
  */
--- a/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetTypeName.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/settingdescriptor/TestGetTypeName.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,10 +29,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test SettingDescriptor.getTypeName();
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.metadata.settingdescriptor.TestGetTypeName
  */
--- a/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestClasses.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestClasses.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary Test ValueDescriptor.getAnnotations()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.valuedescriptor.TestClasses
  */
--- a/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestConstructor.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestConstructor.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.jfr.ValueDescriptor;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test ValueDescriptor.getAnnotations()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.valuedescriptor.TestConstructor
  */
--- a/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestGetAnnotations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestGetAnnotations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.jfr.ValueDescriptor;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test ValueDescriptor.getAnnotations()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.valuedescriptor.TestGetAnnotations
  */
--- a/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestGetFields.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestGetFields.java	Fri Jul 27 12:16:01 2018 +0100
@@ -28,10 +28,11 @@
 import jdk.jfr.ValueDescriptor;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test ValueDescriptor.getAnnotations()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.valuedescriptor.TestGetFields
  */
--- a/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestIsArray.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestIsArray.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.jfr.ValueDescriptor;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test ValueDescriptor.isArray().
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.valuedescriptor.TestIsArray
  */
--- a/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestSimpleTypes.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestSimpleTypes.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.jfr.ValueDescriptor;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test all basic types in ValueDescriptor.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.valuedescriptor.TestSimpleTypes
  */
--- a/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestValueDescriptorContentType.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/metadata/valuedescriptor/TestValueDescriptorContentType.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.jfr.ValueDescriptor;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Test ValueDescriptor.getContentType()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.metadata.valuedescriptor.TestValueDescriptorContentType
  */
--- a/test/jdk/jdk/jfr/api/recorder/TestRecorderInitialized.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recorder/TestRecorderInitialized.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 import jdk.jfr.FlightRecorderListener;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test TestRecorderListener
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  *
  * @run main/othervm jdk.jfr.api.recorder.TestRecorderInitialized
--- a/test/jdk/jdk/jfr/api/recorder/TestRecorderListener.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recorder/TestRecorderListener.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.jfr.Recording;
 import jdk.jfr.RecordingState;
 
-/*
+/**
  * @test TestRecorderListener
  *
  * @key jfr
+ * @requires vm.hasJFR
  * @run main/othervm jdk.jfr.api.recorder.TestRecorderListener
  */
 public class TestRecorderListener {
--- a/test/jdk/jdk/jfr/api/recorder/TestStartStopRecording.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recorder/TestStartStopRecording.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.Utils;
 
-/*
+/**
  * @test TestStartStopRecording
  *
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recorder.TestStartStopRecording
  */
--- a/test/jdk/jdk/jfr/api/recording/destination/TestDestFileExist.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/destination/TestDestFileExist.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @summary Set destination to an existing file. File should be overwritten.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.destination.TestDestFileExist
  */
--- a/test/jdk/jdk/jfr/api/recording/destination/TestDestFileReadOnly.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/destination/TestDestFileReadOnly.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.FileHelper;
 
-/*
+/**
  * @test
  * @summary Set destination to a read-only file. Expects exception.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.destination.TestDestFileReadOnly
  */
--- a/test/jdk/jdk/jfr/api/recording/destination/TestDestInvalid.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/destination/TestDestInvalid.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,10 +39,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary Test setDestination to invalid paths
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.destination.TestDestInvalid
  */
--- a/test/jdk/jdk/jfr/api/recording/destination/TestDestLongPath.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/destination/TestDestLongPath.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.FileHelper;
 
-/*
+/**
  * @test
  * @summary Set destination to a long path
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.destination.TestDestLongPath
  */
--- a/test/jdk/jdk/jfr/api/recording/destination/TestDestMultiple.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/destination/TestDestMultiple.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @summary Test setDestination with concurrent recordings
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -Xlog:jfr=trace jdk.jfr.api.recording.destination.TestDestMultiple
  */
--- a/test/jdk/jdk/jfr/api/recording/destination/TestDestReadOnly.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/destination/TestDestReadOnly.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,10 +40,11 @@
 import jdk.test.lib.jfr.FileHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary Test setDestination to read-only dir
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.destination.TestDestReadOnly
  */
--- a/test/jdk/jdk/jfr/api/recording/destination/TestDestState.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/destination/TestDestState.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @summary Call setDestination() when recording in different states
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.destination.TestDestState
  */
--- a/test/jdk/jdk/jfr/api/recording/destination/TestDestToDiskFalse.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/destination/TestDestToDiskFalse.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,10 +39,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @summary Basic test for setDestination with disk=false
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.destination.TestDestToDiskFalse
  */
--- a/test/jdk/jdk/jfr/api/recording/destination/TestDestToDiskTrue.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/destination/TestDestToDiskTrue.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @summary Basic test for setDestination with disk=true
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.destination.TestDestToDiskTrue
  */
--- a/test/jdk/jdk/jfr/api/recording/destination/TestDestWithDuration.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/destination/TestDestWithDuration.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,10 +39,11 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @summary Test that recording is auto closed after duration
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.destination.TestDestWithDuration
  */
--- a/test/jdk/jdk/jfr/api/recording/dump/TestDump.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/dump/TestDump.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @summary Test copyTo and parse file
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.dump.TestDump
  */
--- a/test/jdk/jdk/jfr/api/recording/dump/TestDumpInvalid.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/dump/TestDumpInvalid.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary Test copyTo and parse file
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.dump.TestDumpInvalid
  */
--- a/test/jdk/jdk/jfr/api/recording/dump/TestDumpLongPath.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/dump/TestDumpLongPath.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.FileHelper;
 
-/*
+/**
  * @test
  * @summary Test copyTo and parse file
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.dump.TestDumpLongPath
  */
--- a/test/jdk/jdk/jfr/api/recording/dump/TestDumpMultiple.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/dump/TestDumpMultiple.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @summary Test copyTo and parse file
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.dump.TestDumpMultiple
  */
--- a/test/jdk/jdk/jfr/api/recording/dump/TestDumpReadOnly.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/dump/TestDumpReadOnly.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.test.lib.jfr.FileHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary Test copyTo and parse file
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.dump.TestDumpReadOnly
  */
--- a/test/jdk/jdk/jfr/api/recording/dump/TestDumpState.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/dump/TestDumpState.java	Fri Jul 27 12:16:01 2018 +0100
@@ -42,10 +42,11 @@
 import jdk.test.lib.jfr.SimpleEventHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary call copyTo() with recording in all states.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.dump.TestDumpState
  */
--- a/test/jdk/jdk/jfr/api/recording/event/TestChunkPeriod.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestChunkPeriod.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary Test periodic setting that involves chunks.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.event.TestChunkPeriod
  */
--- a/test/jdk/jdk/jfr/api/recording/event/TestEnableClass.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestEnableClass.java	Fri Jul 27 12:16:01 2018 +0100
@@ -28,10 +28,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @summary Simple enable Event class.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.event.TestEnableClass
  */
--- a/test/jdk/jdk/jfr/api/recording/event/TestEnableName.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestEnableName.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Simple enable Event class.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.event.TestEnableName
  */
--- a/test/jdk/jdk/jfr/api/recording/event/TestEventTime.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestEventTime.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test getStartTime() and getEndTime(). Verify startTime <= endTime
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.event.TestEventTime
  */
--- a/test/jdk/jdk/jfr/api/recording/event/TestLoadEventAfterStart.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestLoadEventAfterStart.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Load event class after recording started.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @build jdk.test.lib.jfr.SimpleEvent
  * @run main/othervm jdk.jfr.api.recording.event.TestLoadEventAfterStart
--- a/test/jdk/jdk/jfr/api/recording/event/TestPeriod.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestPeriod.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test event period.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.event.TestPeriod
  */
--- a/test/jdk/jdk/jfr/api/recording/event/TestReEnableClass.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestReEnableClass.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @summary Enable, disable, enable event during recording.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.event.TestReEnableClass
  */
--- a/test/jdk/jdk/jfr/api/recording/event/TestReEnableMultiple.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestReEnableMultiple.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,10 +39,11 @@
 import jdk.test.lib.jfr.SimpleEvent;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @summary Enable, disable, enable event during recording.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.event.TestReEnableMultiple
  */
--- a/test/jdk/jdk/jfr/api/recording/event/TestReEnableName.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestReEnableName.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Enable/disable event by name during recording.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.event.TestReEnableName
  */
--- a/test/jdk/jdk/jfr/api/recording/event/TestRecordingEnableDisable.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestRecordingEnableDisable.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.jfr.SimpleEvent;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @summary Enable, disable, enable event during recording.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.event.TestRecordingEnableDisable
  */
--- a/test/jdk/jdk/jfr/api/recording/event/TestThreshold.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/event/TestThreshold.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test event threshold.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.event.TestThreshold
  */
--- a/test/jdk/jdk/jfr/api/recording/misc/TestGetId.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/misc/TestGetId.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Verify that each recording get unique a id
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm  jdk.jfr.api.recording.misc.TestGetId
  */
--- a/test/jdk/jdk/jfr/api/recording/misc/TestGetSize.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/misc/TestGetSize.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @summary Test recording file size with Recording.getSize()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.misc.TestGetSize
  */
--- a/test/jdk/jdk/jfr/api/recording/misc/TestGetSizeToMem.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/misc/TestGetSizeToMem.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @summary Test recording file size with Recording.getSize()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.misc.TestGetSizeToMem
  */
--- a/test/jdk/jdk/jfr/api/recording/misc/TestGetStream.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/misc/TestGetStream.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,10 +43,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @summary A simple test for Recording.getStream()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.misc.TestGetStream
  */
--- a/test/jdk/jdk/jfr/api/recording/misc/TestRecordingBase.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/misc/TestRecordingBase.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,10 +40,11 @@
 import jdk.jfr.Recording;
 import jdk.jfr.RecordingState;
 
-/*
+/**
  * @test
  * @summary Basic tests for Recording
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.misc.TestRecordingBase
  */
--- a/test/jdk/jdk/jfr/api/recording/misc/TestRecordingCopy.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/misc/TestRecordingCopy.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 
 import java.util.List;
 
-/*
+/**
  * @test
  * @summary A simple test for Recording.copy()
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.misc.TestRecordingCopy
  */
--- a/test/jdk/jdk/jfr/api/recording/options/TestDuration.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/options/TestDuration.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.CommonHelper;
 
-/*
+/**
  * @test
  * @summary Test setDuration(). Verify recording is stopped automatically.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.options.TestDuration
  */
--- a/test/jdk/jdk/jfr/api/recording/options/TestName.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/options/TestName.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary Test setName().
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.options.TestName
  */
--- a/test/jdk/jdk/jfr/api/recording/settings/TestConfigurationGetContents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/settings/TestConfigurationGetContents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.jfr.Configuration;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Verifies Configuration.getContents() for every configuration
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.settings.TestConfigurationGetContents
  */
--- a/test/jdk/jdk/jfr/api/recording/settings/TestCreateConfigFromPath.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/settings/TestCreateConfigFromPath.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @summary Test setName().
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.settings.TestCreateConfigFromPath
  */
--- a/test/jdk/jdk/jfr/api/recording/settings/TestCreateConfigFromReader.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/settings/TestCreateConfigFromReader.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @summary Test setName().
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.settings.TestCreateConfigFromReader
  */
--- a/test/jdk/jdk/jfr/api/recording/settings/TestGetConfigurations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/settings/TestGetConfigurations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,11 +29,12 @@
 import jdk.jfr.Configuration;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Verifies that there is the default config and that it has
  *          the expected parameters
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.settings.TestGetConfigurations
  */
--- a/test/jdk/jdk/jfr/api/recording/settings/TestSettingsAvailability.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/settings/TestSettingsAvailability.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,10 +39,11 @@
 import jdk.jfr.consumer.RecordingFile;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @summary Verifies that event types has the correct type of settings
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.settings.TestSettingsAvailability
  */
--- a/test/jdk/jdk/jfr/api/recording/state/TestOptionState.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/state/TestOptionState.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test options in different states
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.state.TestOptionState
  */
--- a/test/jdk/jdk/jfr/api/recording/state/TestState.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/state/TestState.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.jfr.RecordingState;
 import jdk.test.lib.jfr.CommonHelper;
 
-/*
+/**
  * @test
  * @summary Test Recording state
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.state.TestState
  */
--- a/test/jdk/jdk/jfr/api/recording/state/TestStateDuration.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/state/TestStateDuration.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary Test Recording state
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.state.TestStateDuration
  */
--- a/test/jdk/jdk/jfr/api/recording/state/TestStateIdenticalListeners.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/state/TestStateIdenticalListeners.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.jfr.FlightRecorderListener;
 import jdk.jfr.Recording;
 
-/*
+/**
  * @test
  * @summary Test Recording state with concurrent recordings
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.state.TestStateIdenticalListeners
  */
--- a/test/jdk/jdk/jfr/api/recording/state/TestStateInvalid.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/state/TestStateInvalid.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary Test start/stop/close recording from different recording states.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.state.TestStateInvalid
  */
--- a/test/jdk/jdk/jfr/api/recording/state/TestStateMultiple.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/state/TestStateMultiple.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary Test Recording state with concurrent recordings
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.state.TestStateMultiple
  */
--- a/test/jdk/jdk/jfr/api/recording/state/TestStateScheduleStart.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/state/TestStateScheduleStart.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @summary Test Recording state
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.state.TestStateScheduleStart
  */
--- a/test/jdk/jdk/jfr/api/recording/time/TestTime.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/time/TestTime.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test Recording.get*Time()
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm  jdk.jfr.api.recording.time.TestTime
  */
--- a/test/jdk/jdk/jfr/api/recording/time/TestTimeDuration.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/time/TestTimeDuration.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test Recording.setDuration() and Recording.get*Time()
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.time.TestTimeDuration
  */
--- a/test/jdk/jdk/jfr/api/recording/time/TestTimeMultiple.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/time/TestTimeMultiple.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.jfr.Recording;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test recording times with concurrent recordings
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.time.TestTimeMultiple
  */
--- a/test/jdk/jdk/jfr/api/recording/time/TestTimeScheduleStart.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/recording/time/TestTimeScheduleStart.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.CommonHelper;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test Recording.scheduleStart() and Recording.get*Time()
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.api.recording.time.TestTimeScheduleStart
  */
--- a/test/jdk/jdk/jfr/api/settings/TestFilterEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/api/settings/TestFilterEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 
 import static jdk.test.lib.Asserts.assertEquals;
 
-/*
+/**
  * @test
  * @summary The test uses SettingControl
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.api.settings.TestFilterEvents
  */
--- a/test/jdk/jdk/jfr/cmd/TestHelp.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/cmd/TestHelp.java	Fri Jul 27 12:16:01 2018 +0100
@@ -27,10 +27,11 @@
 
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Test help
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.cmd.TestHelp
  */
--- a/test/jdk/jdk/jfr/cmd/TestPrint.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/cmd/TestPrint.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.test.lib.Utils;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Test jfr print
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.cmd.TestPrint
  */
--- a/test/jdk/jdk/jfr/cmd/TestPrintDefault.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/cmd/TestPrintDefault.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,10 +29,11 @@
 
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Tests print --json
+ * @requires vm.hasJFR
  *
  * @library /test/lib /test/jdk
  * @modules java.scripting
--- a/test/jdk/jdk/jfr/cmd/TestPrintJSON.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/cmd/TestPrintJSON.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Tests print --json
+ * @requires vm.hasJFR
  *
  * @library /test/lib /test/jdk
  * @modules jdk.scripting.nashorn
--- a/test/jdk/jdk/jfr/cmd/TestPrintXML.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/cmd/TestPrintXML.java	Fri Jul 27 12:16:01 2018 +0100
@@ -52,10 +52,11 @@
 import org.xml.sax.XMLReader;
 import org.xml.sax.helpers.DefaultHandler;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Tests print --xml
+ * @requires vm.hasJFR
  *
  * @library /test/lib /test/jdk
  * @modules java.scripting
--- a/test/jdk/jdk/jfr/cmd/TestReconstruct.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/cmd/TestReconstruct.java	Fri Jul 27 12:16:01 2018 +0100
@@ -41,10 +41,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Test jfr reconstruct
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.cmd.TestReconstruct
--- a/test/jdk/jdk/jfr/cmd/TestSplit.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/cmd/TestSplit.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.jfr.consumer.RecordingFile;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Test jfr split
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.cmd.TestSplit
  */
--- a/test/jdk/jdk/jfr/cmd/TestSummary.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/cmd/TestSummary.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.jfr.consumer.RecordingFile;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Test jfr info
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.cmd.TestSummary
  */
--- a/test/jdk/jdk/jfr/event/compiler/TestAllocInNewTLAB.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestAllocInNewTLAB.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test that event is triggered when an object is allocated in a new TLAB.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -XX:+UseTLAB -XX:TLABSize=100k -XX:-ResizeTLAB -XX:TLABRefillWasteFraction=1 jdk.jfr.event.compiler.TestAllocInNewTLAB
  * @run main/othervm -XX:+UseTLAB -XX:TLABSize=100k -XX:-ResizeTLAB -XX:TLABRefillWasteFraction=1 -XX:-FastTLABRefill jdk.jfr.event.compiler.TestAllocInNewTLAB
--- a/test/jdk/jdk/jfr/event/compiler/TestAllocOutsideTLAB.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestAllocOutsideTLAB.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test that when an object is allocated outside a TLAB an event will be triggered.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -XX:+UseTLAB -XX:-FastTLABRefill -XX:TLABSize=90k -XX:-ResizeTLAB -XX:TLABRefillWasteFraction=256 jdk.jfr.event.compiler.TestAllocOutsideTLAB
  * @run main/othervm -XX:+UseTLAB -XX:-FastTLABRefill -XX:TLABSize=90k -XX:-ResizeTLAB -XX:TLABRefillWasteFraction=256 jdk.jfr.event.compiler.TestAllocOutsideTLAB
--- a/test/jdk/jdk/jfr/event/compiler/TestCodeCacheConfig.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCodeCacheConfig.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.Events;
 import sun.hotspot.WhiteBox;
 
-/*
+/**
  * @test TestCodeCacheConfig
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @build sun.hotspot.WhiteBox
  * @run main ClassFileInstaller sun.hotspot.WhiteBox
--- a/test/jdk/jdk/jfr/event/compiler/TestCodeCacheFull.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCodeCacheFull.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,8 +35,9 @@
 import sun.hotspot.WhiteBox;
 import sun.hotspot.code.BlobType;
 
-/*
+/**
  * @test TestCodeCacheFull
+ * @requires vm.hasJFR
  *
  * @library /test/lib
  * @modules jdk.jfr
--- a/test/jdk/jdk/jfr/event/compiler/TestCodeCacheStats.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCodeCacheStats.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.compiler.TestCodeCacheStats
  */
--- a/test/jdk/jdk/jfr/event/compiler/TestCodeSweeper.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCodeSweeper.java	Fri Jul 27 12:16:01 2018 +0100
@@ -51,9 +51,10 @@
  * event is received, the event is verified. If an event is missing, we do NOT
  * fail.
  */
-/*
+/**
  * @test TestCodeSweeper
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @build sun.hotspot.WhiteBox
  * @run driver ClassFileInstaller sun.hotspot.WhiteBox
--- a/test/jdk/jdk/jfr/event/compiler/TestCodeSweeperConfig.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCodeSweeperConfig.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 import jdk.test.lib.jfr.Events;
 
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -XX:+UseCodeCacheFlushing -XX:-SegmentedCodeCache jdk.jfr.event.compiler.TestCodeSweeperConfig
  * @run main/othervm -XX:+UseCodeCacheFlushing -XX:+SegmentedCodeCache jdk.jfr.event.compiler.TestCodeSweeperConfig
--- a/test/jdk/jdk/jfr/event/compiler/TestCodeSweeperStats.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCodeSweeperStats.java	Fri Jul 27 12:16:01 2018 +0100
@@ -41,9 +41,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.Utils;
 
-/*
+/**
  * @test TestCodeSweeperStats
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @requires vm.compMode!="Xint"
  * @build sun.hotspot.WhiteBox
--- a/test/jdk/jdk/jfr/event/compiler/TestCompilerCompile.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCompilerCompile.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,9 +39,10 @@
 import jdk.test.lib.jfr.Events;
 import sun.hotspot.WhiteBox;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.compMode!="Xint"
  * @library /test/lib
  * @build sun.hotspot.WhiteBox
--- a/test/jdk/jdk/jfr/event/compiler/TestCompilerConfig.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCompilerConfig.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.compiler.TestCompilerConfig
  */
--- a/test/jdk/jdk/jfr/event/compiler/TestCompilerInlining.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCompilerInlining.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,11 +43,12 @@
 import java.util.*;
 import java.util.stream.IntStream;
 
-/*
+/**
  * @test CompilerInliningTest
  * @bug 8073607
  * @key jfr
  * @summary Verifies that corresponding JFR events are emitted in case of inlining.
+ * @requires vm.hasJFR
  *
  * @requires vm.opt.Inline == true | vm.opt.Inline == null
  * @library /test/lib
--- a/test/jdk/jdk/jfr/event/compiler/TestCompilerPhase.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCompilerPhase.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.Events;
 import sun.hotspot.WhiteBox;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.compMode!="Xint" & vm.flavor == "server" & (vm.opt.TieredStopAtLevel == 4 | vm.opt.TieredStopAtLevel == null)
  * @library /test/lib
  * @build sun.hotspot.WhiteBox
--- a/test/jdk/jdk/jfr/event/compiler/TestCompilerStats.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/compiler/TestCompilerStats.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.compiler.TestCompilerStats
  */
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithCMSConcurrent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithCMSConcurrent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.collection;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  * @requires vm.opt.ExplicitGCInvokesConcurrent != false
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithCMSMarkSweep.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithCMSMarkSweep.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.collection;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  * @requires vm.opt.ExplicitGCInvokesConcurrent != true
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithG1ConcurrentMark.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithG1ConcurrentMark.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.collection;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "G1" | vm.gc == null
  * @requires vm.opt.ExplicitGCInvokesConcurrent != false
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithG1FullCollection.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithG1FullCollection.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.collection;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "G1" | vm.gc == null
  * @requires vm.opt.ExplicitGCInvokesConcurrent != true
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithPSMarkSweep.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithPSMarkSweep.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.collection;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithParallelOld.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithParallelOld.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.collection;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithSerial.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCCauseWithSerial.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.collection;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "Serial" | vm.gc == null
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithCMSConcurrent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithCMSConcurrent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  *           & vm.opt.ExplicitGCInvokesConcurrent != false
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithCMSMarkSweep.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithCMSMarkSweep.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithG1ConcurrentMark.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithG1ConcurrentMark.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "G1" | vm.gc == null)
  *           & vm.opt.ExplicitGCInvokesConcurrent != false
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithG1FullCollection.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithG1FullCollection.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "G1" | vm.gc == null)
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithPSMarkSweep.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithPSMarkSweep.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithParNew.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithParNew.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithParallelOld.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithParallelOld.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithSerial.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCEventMixedWithSerial.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "Serial" | vm.gc == null
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCGarbageCollectionEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCGarbageCollectionEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -Xlog:gc*=debug -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps jdk.jfr.event.gc.collection.TestGCGarbageCollectionEvent
  */
--- a/test/jdk/jdk/jfr/event/gc/collection/TestGCWithFasttime.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestGCWithFasttime.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
   * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseParallelGC -XX:+UseParallelOldGC jdk.jfr.event.gc.collection.TestGCWithFasttime
--- a/test/jdk/jdk/jfr/event/gc/collection/TestYoungGarbageCollectionEventWithDefNew.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestYoungGarbageCollectionEventWithDefNew.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Serial" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -Xmx50m -Xmn2m -XX:+UseSerialGC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc+heap=trace,gc*=debug jdk.jfr.event.gc.collection.TestYoungGarbageCollectionEventWithDefNew
--- a/test/jdk/jdk/jfr/event/gc/collection/TestYoungGarbageCollectionEventWithG1New.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestYoungGarbageCollectionEventWithG1New.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "G1" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -Xmx50m -Xmn2m -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc+heap=trace,gc*=debug jdk.jfr.event.gc.collection.TestYoungGarbageCollectionEventWithG1New
--- a/test/jdk/jdk/jfr/event/gc/collection/TestYoungGarbageCollectionEventWithParNew.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestYoungGarbageCollectionEventWithParNew.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  * @library /test/lib /test/jdk
  * @run main/othervm -Xmx50m -Xmn2m -XX:+UseConcMarkSweepGC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc+heap=trace,gc*=debug jdk.jfr.event.gc.collection.TestYoungGarbageCollectionEventWithParNew
--- a/test/jdk/jdk/jfr/event/gc/collection/TestYoungGarbageCollectionEventWithParallelScavenge.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/collection/TestYoungGarbageCollectionEventWithParallelScavenge.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.collection;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -Xmx50m -Xmn2m -XX:+UseParallelGC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:-UseAdaptiveSizePolicy -Xlog:gc+heap=trace,gc*=debug jdk.jfr.event.gc.collection.TestYoungGarbageCollectionEventWithParallelScavenge
--- a/test/jdk/jdk/jfr/event/gc/configuration/TestGCConfigurationEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/configuration/TestGCConfigurationEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.EventVerifier;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "Parallel" | vm.gc == null)
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/configuration/TestGCConfigurationEventWithDefaultPauseTarget.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/configuration/TestGCConfigurationEventWithDefaultPauseTarget.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.EventVerifier;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps jdk.jfr.event.gc.configuration.TestGCConfigurationEventWithDefaultPauseTarget
  */
--- a/test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWith32BitOops.sh	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWith32BitOops.sh	Fri Jul 27 12:16:01 2018 +0100
@@ -22,6 +22,7 @@
 #
 # @test TestGCHeapConfigurationEventWith32BitOops
 # @key jfr
+# @requires vm.hasJFR
 # @requires vm.gc == "Parallel" | vm.gc == null
 # @library /test/lib /test/jdk
 # @build jdk.jfr.event.gc.configuration.TestGCHeapConfigurationEventWith32BitOops sun.hotspot.WhiteBox
--- a/test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWithHeapBasedOops.sh	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWithHeapBasedOops.sh	Fri Jul 27 12:16:01 2018 +0100
@@ -22,6 +22,7 @@
 #
 # @test TestGCHeapConfigurationEventWithHeapBasedOops
 # @key jfr
+# @requires vm.hasJFR
 # @requires vm.gc == "Parallel" | vm.gc == null
 # @library /test/lib /test/jdk
 # @build jdk.jfr.event.gc.configuration.TestGCHeapConfigurationEventWithHeapBasedOops
--- a/test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWithZeroBasedOops.sh	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWithZeroBasedOops.sh	Fri Jul 27 12:16:01 2018 +0100
@@ -22,6 +22,7 @@
 #
 # @test TestGCHeapConfigurationEventWithZeroBasedOops
 # @key jfr
+# @requires vm.hasJFR
 # @requires vm.gc == "Parallel" | vm.gc == null
 # @library /test/lib /test/jdk
 # @build jdk.jfr.event.gc.configuration.TestGCHeapConfigurationEventWithZeroBasedOops
--- a/test/jdk/jdk/jfr/event/gc/configuration/TestGCSurvivorConfigurationEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/configuration/TestGCSurvivorConfigurationEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.EventVerifier;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:MaxTenuringThreshold=13 -XX:InitialTenuringThreshold=9 jdk.jfr.event.gc.configuration.TestGCSurvivorConfigurationEvent
--- a/test/jdk/jdk/jfr/event/gc/configuration/TestGCTLABConfigurationEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/configuration/TestGCTLABConfigurationEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.EventVerifier;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+UseTLAB -XX:MinTLABSize=3k -XX:TLABRefillWasteFraction=96 jdk.jfr.event.gc.configuration.TestGCTLABConfigurationEvent
--- a/test/jdk/jdk/jfr/event/gc/configuration/TestGCYoungGenerationConfigurationEventWithMinAndMaxSize.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/configuration/TestGCYoungGenerationConfigurationEventWithMinAndMaxSize.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,9 +30,10 @@
 import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.process.ProcessTools;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run driver jdk.jfr.event.gc.configuration.TestGCYoungGenerationConfigurationEventWithMinAndMaxSize
  */
--- a/test/jdk/jdk/jfr/event/gc/configuration/TestGCYoungGenerationConfigurationEventWithNewRatio.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/configuration/TestGCYoungGenerationConfigurationEventWithNewRatio.java	Fri Jul 27 12:16:01 2018 +0100
@@ -28,9 +28,10 @@
 import jdk.jfr.consumer.RecordedEvent;
 import jdk.test.lib.jfr.EventVerifier;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:NewRatio=4 jdk.jfr.event.gc.configuration.TestGCYoungGenerationConfigurationEventWithNewRatio
  */
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestCMSConcurrentModeFailureEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestCMSConcurrentModeFailureEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @library /test/lib /test/jdk
  * @requires vm.gc == "G1" | vm.gc == null
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestEvacuationInfoEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestEvacuationInfoEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,9 +36,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "G1" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:G1HeapRegionSize=1m -Xmx64m -Xmn16m -XX:+UseG1GC jdk.jfr.event.gc.detailed.TestEvacuationInfoEvent
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestG1AIHOPEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestG1AIHOPEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "G1" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:NewSize=2m -XX:MaxNewSize=2m -Xmx32m -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:+G1UseAdaptiveIHOP jdk.jfr.event.gc.detailed.TestG1AIHOPEvent
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestG1ConcurrentModeFailureEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestG1ConcurrentModeFailureEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "G1" | vm.gc == null
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestG1EvacMemoryStatsEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestG1EvacMemoryStatsEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "G1" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:NewSize=2m -XX:MaxNewSize=2m -Xmx32m -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps jdk.jfr.event.gc.detailed.TestG1EvacMemoryStatsEvent
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestG1HeapRegionTypeChangeEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestG1HeapRegionTypeChangeEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @bug 8149650
+ * @requires vm.hasJFR
  * @requires vm.gc == "G1" | vm.gc == null
  * @key jfr
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestG1IHOPEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestG1IHOPEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "G1" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:NewSize=2m -XX:MaxNewSize=2m -Xmx32m -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:-G1UseAdaptiveIHOP jdk.jfr.event.gc.detailed.TestG1IHOPEvent
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestG1MMUEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestG1MMUEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "G1" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:NewSize=2m -XX:MaxNewSize=2m -Xmx32m -XX:+UseG1GC -XX:MaxGCPauseMillis=75 -XX:GCPauseIntervalMillis=150 -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps jdk.jfr.event.gc.detailed.TestG1MMUEvent
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionEventWithG1.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionEventWithG1.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,10 +24,11 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test that events are created when an object is aged or promoted during a GC and the copying of the object requires a new PLAB or direct heap allocation
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "G1" | vm.gc == null)
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionEventWithParallelScavenge.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionEventWithParallelScavenge.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,10 +24,11 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test that events are created when an object is aged or promoted during a GC and the copying of the object requires a new PLAB or direct heap allocation
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithDefNew.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithDefNew.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "Serial" | vm.gc == null
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParNew.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParNew.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  * @library /test/lib /test/jdk
  * @run main/othervm  jdk.jfr.event.gc.detailed.TestPromotionFailedEventWithParNew
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java	Fri Jul 27 12:16:01 2018 +0100
@@ -25,9 +25,10 @@
 
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithCMS.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithCMS.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,8 +24,9 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
+ * @requires vm.hasJFR
  * @requires (vm.gc == "null" | vm.gc == "ConcMarkSweep") & !vm.graal.enabled
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseConcMarkSweepGC -Xmx64m jdk.jfr.event.gc.detailed.TestStressAllocationGCEventsWithCMS
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithDefNew.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithDefNew.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,8 +24,9 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
+ * @requires vm.hasJFR
  * @requires vm.gc == "null" | vm.gc == "Serial"
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseSerialGC -Xmx64m jdk.jfr.event.gc.detailed.TestStressAllocationGCEventsWithDefNew
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithG1.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithG1.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,8 +24,9 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
+ * @requires vm.hasJFR
  * @requires vm.gc == "null" | vm.gc == "G1"
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseG1GC -Xmx64m jdk.jfr.event.gc.detailed.TestStressAllocationGCEventsWithG1
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithParNew.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithParNew.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,8 +24,9 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
+ * @requires vm.hasJFR
  * @requires vm.gc == "null" & !vm.graal.enabled
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseConcMarkSweepGC -Xmx64m jdk.jfr.event.gc.detailed.TestStressAllocationGCEventsWithParNew
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithParallel.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithParallel.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,8 +24,9 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
+ * @requires vm.hasJFR
  * @requires vm.gc == "null" | vm.gc == "Parallel"
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseParallelGC -Xmx64m jdk.jfr.event.gc.detailed.TestStressAllocationGCEventsWithParallel
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithCMS.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithCMS.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,8 +24,9 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
+ * @requires vm.hasJFR
  * @requires (vm.gc == "null" | vm.gc == "ConcMarkSweep") & !vm.graal.enabled
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseConcMarkSweepGC -Xmx256m jdk.jfr.event.gc.detailed.TestStressBigAllocationGCEventsWithCMS 1048576
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithDefNew.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithDefNew.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,8 +24,9 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
+ * @requires vm.hasJFR
  * @requires vm.gc == "null" | vm.gc == "Serial"
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseSerialGC -Xmx256m jdk.jfr.event.gc.detailed.TestStressBigAllocationGCEventsWithDefNew 1048576
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithG1.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithG1.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,6 +32,7 @@
  * fits exactly to one region, if not - G1 will allocate another almost empty
  * region as a continue of humongous. Thus we will exhaust memory very fast and
  * test will fail with OOME.
+ * @requires vm.hasJFR
  * @requires vm.gc == "null" | vm.gc == "G1"
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseG1GC -XX:MaxNewSize=5m -Xmx256m -XX:G1HeapRegionSize=1048576 jdk.jfr.event.gc.detailed.TestStressBigAllocationGCEventsWithG1 1048544
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithParNew.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithParNew.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,8 +24,9 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
+ * @requires vm.hasJFR
  * @requires vm.gc == "null" & !vm.graal.enabled
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseConcMarkSweepGC -Xmx256m jdk.jfr.event.gc.detailed.TestStressBigAllocationGCEventsWithParNew 1048576
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithParallel.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithParallel.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,8 +24,9 @@
  */
 package jdk.jfr.event.gc.detailed;
 
-/*
+/**
  * @test
+ * @requires vm.hasJFR
  * @requires vm.gc == "null" | vm.gc == "Parallel"
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseParallelGC -Xmx256m jdk.jfr.event.gc.detailed.TestStressBigAllocationGCEventsWithParallel 1048576
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestTenuringDistributionEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestTenuringDistributionEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @bug 8009538
+ * @requires vm.hasJFR
  * @requires vm.gc == "G1" | vm.gc == null
  * @key jfr
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryCommittedSize.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryCommittedSize.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,9 +36,10 @@
 import jdk.test.lib.jfr.GCHelper;
 import sun.hotspot.WhiteBox;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @build sun.hotspot.WhiteBox
--- a/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventConcurrentCMS.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventConcurrentCMS.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  *           & vm.opt.ExplicitGCInvokesConcurrent != false
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventDefNewSerial.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventDefNewSerial.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.heapsummary;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Serial" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseSerialGC jdk.jfr.event.gc.heapsummary.TestHeapSummaryEventDefNewSerial
--- a/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventG1.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventG1.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.heapsummary;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "G1" | vm.gc == null)
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventPSParOld.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventPSParOld.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.heapsummary;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:+UseParallelGC jdk.jfr.event.gc.heapsummary.TestHeapSummaryEventPSParOld
--- a/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventPSSerial.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventPSSerial.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.heapsummary;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:-UseParallelOldGC -XX:+UseParallelGC jdk.jfr.event.gc.heapsummary.TestHeapSummaryEventPSSerial
--- a/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventParNewCMS.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/heapsummary/TestHeapSummaryEventParNewCMS.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.heapsummary;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithCMSConcurrent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithCMSConcurrent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.objectcount;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  *           & vm.opt.ExplicitGCInvokesConcurrent != false
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithCMSMarkSweep.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithCMSMarkSweep.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.objectcount;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithG1ConcurrentMark.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithG1ConcurrentMark.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.objectcount;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "G1" | vm.gc == null)
  *           & vm.opt.ExplicitGCInvokesConcurrent != false
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithG1FullCollection.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithG1FullCollection.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.objectcount;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "G1" | vm.gc == null)
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithPSMarkSweep.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithPSMarkSweep.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.objectcount;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UseParallelGC -XX:-UseParallelOldGC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:MarkSweepDeadRatio=0 -XX:-UseCompressedOops -XX:+IgnoreUnrecognizedVMOptions jdk.jfr.event.gc.objectcount.TestObjectCountAfterGCEventWithPSMarkSweep
--- a/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithParallelOld.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithParallelOld.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.objectcount;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:MarkSweepDeadRatio=0 -XX:-UseCompressedOops -XX:+IgnoreUnrecognizedVMOptions jdk.jfr.event.gc.objectcount.TestObjectCountAfterGCEventWithParallelOld
--- a/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithSerial.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountAfterGCEventWithSerial.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.objectcount;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Serial" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:+UseSerialGC -XX:MarkSweepDeadRatio=0 -XX:-UseCompressedOops -XX:+IgnoreUnrecognizedVMOptions jdk.jfr.event.gc.objectcount.TestObjectCountAfterGCEventWithSerial
--- a/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/objectcount/TestObjectCountEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Serial" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -XX:+UseSerialGC -XX:-UseCompressedOops -XX:MarkSweepDeadRatio=0 -XX:+IgnoreUnrecognizedVMOptions jdk.jfr.event.gc.objectcount.TestObjectCountEvent
--- a/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithCMSConcurrent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithCMSConcurrent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.refstat;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  *           & vm.opt.ExplicitGCInvokesConcurrent != false
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithCMSMarkSweep.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithCMSMarkSweep.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.refstat;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "ConcMarkSweep" | vm.gc == null) & !vm.graal.enabled
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithDefNew.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithDefNew.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.refstat;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Serial" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm  -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc+heap=trace,gc*=debug -Xmx50m -Xmn2m -XX:+UseSerialGC jdk.jfr.event.gc.refstat.TestRefStatEventWithDefNew
--- a/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithG1ConcurrentMark.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithG1ConcurrentMark.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.refstat;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "G1" | vm.gc == null)
  *           & vm.opt.ExplicitGCInvokesConcurrent != false
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithG1FullCollection.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithG1FullCollection.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.refstat;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires (vm.gc == "G1" | vm.gc == null)
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithG1New.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithG1New.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.refstat;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "G1" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc+heap=trace,gc*=debug -Xmx50m -Xmn2m -XX:+UseG1GC jdk.jfr.event.gc.refstat.TestRefStatEventWithG1New
--- a/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithPSMarkSweep.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithPSMarkSweep.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.refstat;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc+heap=trace,gc*=debug -XX:+UseParallelGC -XX:-UseParallelOldGC jdk.jfr.event.gc.refstat.TestRefStatEventWithPSMarkSweep
--- a/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithParallelOld.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithParallelOld.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.refstat;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc+heap=trace,gc*=debug -XX:+UseParallelGC -XX:+UseParallelOldGC jdk.jfr.event.gc.refstat.TestRefStatEventWithParallelOld
--- a/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithParallelScavenge.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/refstat/TestRefStatEventWithParallelScavenge.java	Fri Jul 27 12:16:01 2018 +0100
@@ -26,9 +26,10 @@
 package jdk.jfr.event.gc.refstat;
 import jdk.test.lib.jfr.GCHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc+heap=trace,gc*=debug -Xmx50m -Xmn2m -XX:-UseLargePages -XX:+UseParallelGC -XX:-UseAdaptiveSizePolicy jdk.jfr.event.gc.refstat.TestRefStatEventWithParallelScavenge
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestConcMarkSweepAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestConcMarkSweepAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "null" | vm.gc == "ConcMarkSweep") & !vm.graal.enabled
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestDefNewAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestDefNewAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "null" | vm.gc == "Serial"
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestG1HumongousAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestG1HumongousAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "null" | vm.gc == "G1"
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestG1OldAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestG1OldAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "null" | vm.gc == "G1"
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestG1YoungAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestG1YoungAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "null" | vm.gc == "G1"
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestMarkSweepCompactAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestMarkSweepCompactAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "null" | vm.gc == "Serial"
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestMetaspaceConcMarkSweepGCAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestMetaspaceConcMarkSweepGCAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "null" | vm.gc == "ConcMarkSweep") & !vm.graal.enabled
  * @requires !(vm.compMode == "Xcomp" & os.arch == "aarch64")
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestMetaspaceG1GCAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestMetaspaceG1GCAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -23,9 +23,10 @@
  * questions.
  */
 package jdk.jfr.event.gc.stacktrace;
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "null" | vm.gc == "G1"
  * @requires !(vm.compMode == "Xcomp" & os.arch == "aarch64")
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestMetaspaceParallelGCAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestMetaspaceParallelGCAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "null" | vm.gc == "Parallel"
  * @requires !(vm.compMode == "Xcomp" & os.arch == "aarch64")
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestMetaspaceSerialGCAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestMetaspaceSerialGCAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "null" | vm.gc == "Serial"
  * @requires !(vm.compMode == "Xcomp" & os.arch == "aarch64")
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestParNewAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestParNewAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires (vm.gc == "null" | vm.gc == "ConcMarkSweep") & !vm.graal.enabled
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestParallelMarkSweepAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestParallelMarkSweepAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "null" | vm.gc == "Parallel"
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/gc/stacktrace/TestParallelScavengeAllocationPendingStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/gc/stacktrace/TestParallelScavengeAllocationPendingStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -24,9 +24,10 @@
  */
 package jdk.jfr.event.gc.stacktrace;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @requires vm.gc == "null" | vm.gc == "Parallel"
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/io/EvilInstrument.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/io/EvilInstrument.java	Fri Jul 27 12:16:01 2018 +0100
@@ -46,6 +46,7 @@
  * @summary This test runs JFR with a javaagent that reads/writes files and
  * sockets during every class definition. This is to verify that the i/o
  * instrumentation in JFR does not interfere with javaagents.
+ * @requires vm.hasJFR
  *
  * @library /test/lib /test/jdk
  * @modules java.instrument
--- a/test/jdk/jdk/jfr/event/io/TestDisabledEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/io/TestDisabledEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,10 +39,11 @@
 import jdk.jfr.consumer.RecordedEvent;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test with FlightRecorder enabled but with the events disabled.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.event.io.TestDisabledEvents
  */
--- a/test/jdk/jdk/jfr/event/io/TestFileChannelEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/io/TestFileChannelEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,9 +39,10 @@
 import jdk.jfr.consumer.RecordedEvent;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.event.io.TestFileChannelEvents
  */
--- a/test/jdk/jdk/jfr/event/io/TestFileReadOnly.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/io/TestFileReadOnly.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,9 +40,10 @@
 import jdk.jfr.consumer.RecordedEvent;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.event.io.TestFileReadOnly
  */
--- a/test/jdk/jdk/jfr/event/io/TestFileStreamEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/io/TestFileStreamEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.jfr.consumer.RecordedEvent;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test TestFileStreamEvents
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.event.io.TestFileStreamEvents
  */
--- a/test/jdk/jdk/jfr/event/io/TestInstrumentation.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/io/TestInstrumentation.java	Fri Jul 27 12:16:01 2018 +0100
@@ -47,6 +47,7 @@
  * @test
  * @summary Test that will instrument the same classes that JFR will also instrument.
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @library /test/lib /test/jdk
  * @modules java.base/jdk.internal.org.objectweb.asm
--- a/test/jdk/jdk/jfr/event/io/TestRandomAccessFileEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/io/TestRandomAccessFileEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,9 +37,10 @@
 import jdk.jfr.consumer.RecordedEvent;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.event.io.TestRandomAccessFileEvents
  */
--- a/test/jdk/jdk/jfr/event/io/TestRandomAccessFileThread.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/io/TestRandomAccessFileThread.java	Fri Jul 27 12:16:01 2018 +0100
@@ -42,10 +42,11 @@
 import jdk.test.lib.thread.XRun;
 
 
-/*
+/**
  * @test
  * @summary Verify the event time stamp and thread name
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps jdk.jfr.event.io.TestRandomAccessFileThread
  */
--- a/test/jdk/jdk/jfr/event/io/TestSocketChannelEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/io/TestSocketChannelEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -41,9 +41,10 @@
 import jdk.test.lib.thread.TestThread;
 import jdk.test.lib.thread.XRun;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.event.io.TestSocketChannelEvents
  */
--- a/test/jdk/jdk/jfr/event/io/TestSocketEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/io/TestSocketEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -42,9 +42,10 @@
 import jdk.test.lib.thread.TestThread;
 import jdk.test.lib.thread.XRun;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.event.io.TestSocketEvents
  */
--- a/test/jdk/jdk/jfr/event/metadata/TestDefaultConfigurations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/metadata/TestDefaultConfigurations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -53,9 +53,10 @@
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @library /test/lib
  * @modules java.xml
--- a/test/jdk/jdk/jfr/event/metadata/TestEventMetadata.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/metadata/TestEventMetadata.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.metadata.TestEventMetadata
  */
--- a/test/jdk/jdk/jfr/event/oldobject/TestAllocationTime.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestAllocationTime.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,9 +37,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestArrayInformation.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestArrayInformation.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,9 +36,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestCMS.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestCMS.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null" & !vm.graal.enabled
  * @summary Test leak profiler with CMS GC
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/oldobject/TestCircularReference.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestCircularReference.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestClassLoaderLeak.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestClassLoaderLeak.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestFieldInformation.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestFieldInformation.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestG1.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestG1.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @summary Test leak profiler with G1 GC
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/oldobject/TestHeapDeep.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestHeapDeep.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestHeapShallow.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestHeapShallow.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.jfr.internal.test.WhiteBox;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestLargeRootSet.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestLargeRootSet.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestLastKnownHeapUsage.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestLastKnownHeapUsage.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,9 +37,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestListenerLeak.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestListenerLeak.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestMetadataRetention.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestMetadataRetention.java	Fri Jul 27 12:16:01 2018 +0100
@@ -41,9 +41,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.TestClassLoader;
 
-/*
+/**
  * @test
  * @summary The test verifies that an old object sample maintains references to "stale" metadata
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @key jfr
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestObjectDescription.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestObjectDescription.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,9 +39,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestParallel.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestParallel.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @summary Test leak profiler with Parallel GC
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/oldobject/TestParallelOld.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestParallelOld.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @summary Test leak profiler with Parallel Old GC
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/oldobject/TestReferenceChainLimit.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestReferenceChainLimit.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
--- a/test/jdk/jdk/jfr/event/oldobject/TestSanityDefault.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestSanityDefault.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @library /test/lib /test/jdk
  * @summary Purpose of this test is to run leak profiler without command line tweaks or WhiteBox hacks until we succeed
--- a/test/jdk/jdk/jfr/event/oldobject/TestSerial.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestSerial.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @requires vm.gc == "null"
  * @summary Test leak profiler with Serial GC
  * @library /test/lib /test/jdk
--- a/test/jdk/jdk/jfr/event/oldobject/TestThreadLocalLeak.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/oldobject/TestThreadLocalLeak.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal.test
  * @run main/othervm -XX:TLABSize=2k jdk.jfr.event.oldobject.TestThreadLocalLeak
--- a/test/jdk/jdk/jfr/event/os/TestCPUInformation.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/os/TestCPUInformation.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.os.TestCPUInformation
  */
--- a/test/jdk/jdk/jfr/event/os/TestCPULoad.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/os/TestCPULoad.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 import jdk.test.lib.jfr.Events;
 
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.os.TestCPULoad
  */
--- a/test/jdk/jdk/jfr/event/os/TestCPUTimeStampCounter.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/os/TestCPUTimeStampCounter.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.os.TestCPUTimeStampCounter
  */
--- a/test/jdk/jdk/jfr/event/os/TestInitialEnvironmentVariable.sh	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/os/TestInitialEnvironmentVariable.sh	Fri Jul 27 12:16:01 2018 +0100
@@ -22,9 +22,11 @@
 #
 # @test
 # @key jfr
+# @requires vm.hasJFR
 # @library /test/lib
 # @build jdk.jfr.event.os.TestInitialEnvironmentVariable
 # @run shell TestInitialEnvironmentVariable.sh
+
 echo -------------------------------------------------------------
 echo "TESTCLASSES='$TESTCLASSES'"
 echo "TESTSRC='$TESTSRC'"
--- a/test/jdk/jdk/jfr/event/os/TestOSInfo.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/os/TestOSInfo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.os.TestOSInfo
  */
--- a/test/jdk/jdk/jfr/event/os/TestPhysicalMemoryEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/os/TestPhysicalMemoryEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.os.TestPhysicalMemoryEvent
  */
--- a/test/jdk/jdk/jfr/event/os/TestSystemProcess.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/os/TestSystemProcess.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.os.TestSystemProcess
  */
--- a/test/jdk/jdk/jfr/event/os/TestThreadContextSwitches.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/os/TestThreadContextSwitches.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.os.TestThreadContextSwitches
  */
--- a/test/jdk/jdk/jfr/event/profiling/TestFullStackTrace.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/profiling/TestFullStackTrace.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.RecurseThread;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.profiling.TestFullStackTrace
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestActiveRecordingEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestActiveRecordingEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,10 +43,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Tests that the recording properties are properly reflected in the ActiveRecording event
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestActiveRecordingEvent
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestActiveSettingEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestActiveSettingEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,10 +40,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Tests that active setting are available in the ActiveSettingevent
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestActiveSettingEvent
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestBiasedLockRevocationEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestBiasedLockRevocationEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,9 +37,10 @@
 import java.util.concurrent.FutureTask;
 import java.util.stream.Collectors;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  *
  * @run main/othervm jdk.jfr.event.runtime.TestBiasedLockRevocationEvents
--- a/test/jdk/jdk/jfr/event/runtime/TestClassDefineEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestClassDefineEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,9 +36,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.TestClassLoader;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @build jdk.jfr.event.runtime.TestClasses
  * @run main/othervm jdk.jfr.event.runtime.TestClassDefineEvent
--- a/test/jdk/jdk/jfr/event/runtime/TestClassLoadEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestClassLoadEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,9 +37,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.TestClassLoader;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @build jdk.jfr.event.runtime.TestClasses
  * @run main/othervm jdk.jfr.event.runtime.TestClassLoadEvent
--- a/test/jdk/jdk/jfr/event/runtime/TestClassLoaderStatsEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestClassLoaderStatsEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,9 +39,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @build jdk.jfr.event.runtime.TestClasses
  * @run main/othervm jdk.jfr.event.runtime.TestClassLoaderStatsEvent
--- a/test/jdk/jdk/jfr/event/runtime/TestClassLoadingStatisticsEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestClassLoadingStatisticsEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.TestClassLoader;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @build jdk.jfr.event.runtime.TestClasses
  * @run main/othervm jdk.jfr.event.runtime.TestClassLoadingStatisticsEvent
--- a/test/jdk/jdk/jfr/event/runtime/TestClassUnloadEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestClassUnloadEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.TestClassLoader;
 
-/*
+/**
  * @test
  * @summary The test verifies that a class unload event is created when class is unloaded
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @build jdk.jfr.event.runtime.TestClasses
  * @run main/othervm -Xlog:class+unload -Xlog:gc -Xmx16m jdk.jfr.event.runtime.TestClassUnloadEvent
--- a/test/jdk/jdk/jfr/event/runtime/TestExceptionEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestExceptionEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestExceptionEvents
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestExceptionSubclass.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestExceptionSubclass.java	Fri Jul 27 12:16:01 2018 +0100
@@ -27,10 +27,11 @@
 
 import java.util.concurrent.TimeUnit;
 
-/*
+/**
  * @test
  * @key jfr
  * @bug 8013122
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestExceptionSubclass
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestJavaBlockedEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestJavaBlockedEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,9 +40,10 @@
 import jdk.test.lib.thread.TestThread;
 import jdk.test.lib.thread.XRun;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  *
  * @run main/othervm jdk.jfr.event.runtime.TestJavaBlockedEvent
--- a/test/jdk/jdk/jfr/event/runtime/TestJavaMonitorInflateEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestJavaMonitorInflateEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.thread.TestThread;
 import jdk.test.lib.thread.XRun;
 
-/*
+/**
  * @test TestJavaMonitorInflateEvent
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestJavaMonitorInflateEvent
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestJavaMonitorWaitEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestJavaMonitorWaitEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.thread.TestThread;
 import jdk.test.lib.thread.XRun;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestJavaMonitorWaitEvent
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestJavaMonitorWaitTimeOut.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestJavaMonitorWaitTimeOut.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestJavaMonitorWaitTimeOut
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestJavaThreadStatisticsEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestJavaThreadStatisticsEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,9 +37,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestJavaThreadStatisticsEvent
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestJavaThreadStatisticsEventBean.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestJavaThreadStatisticsEventBean.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,9 +37,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  *
  * @run main/othervm jdk.jfr.event.runtime.TestJavaThreadStatisticsEventBean
--- a/test/jdk/jdk/jfr/event/runtime/TestModuleEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestModuleEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Tests the JFR events related to modules
  * @key jfr
+ * @requires vm.hasJFR
  * @requires !vm.graal.enabled
  * @library /test/lib
  * @run main/othervm --limit-modules java.base,jdk.jfr jdk.jfr.event.runtime.TestModuleEvents
--- a/test/jdk/jdk/jfr/event/runtime/TestNativeLibrariesEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestNativeLibrariesEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,9 +37,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestNativeLibrariesEvent
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestNetworkUtilizationEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestNetworkUtilizationEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,9 +43,10 @@
 import static java.util.stream.Collectors.averagingLong;
 import static java.util.stream.Collectors.groupingBy;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  *
  * @run main/othervm jdk.jfr.event.runtime.TestNetworkUtilizationEvent
--- a/test/jdk/jdk/jfr/event/runtime/TestSafepointEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestSafepointEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.jfr.Events;
 import sun.hotspot.WhiteBox;
 
-/*
+/**
  * @test TestSafepointEvents
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @build sun.hotspot.WhiteBox
  * @run main ClassFileInstaller sun.hotspot.WhiteBox
--- a/test/jdk/jdk/jfr/event/runtime/TestSizeTFlags.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestSizeTFlags.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @bug 8058552
+ * @requires vm.hasJFR
  * @requires vm.gc == "G1" | vm.gc == null
  * @key jfr
  * @summary Test checks that flags of type size_t are being sent to the jfr
--- a/test/jdk/jdk/jfr/event/runtime/TestSystemPropertyEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestSystemPropertyEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestSystemPropertyEvent
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestThreadAllocationEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestThreadAllocationEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,9 +43,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr
  *          jdk.management
--- a/test/jdk/jdk/jfr/event/runtime/TestThreadCpuTimeEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestThreadCpuTimeEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,9 +43,10 @@
 import java.util.concurrent.CyclicBarrier;
 import java.util.stream.Collectors;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr
  *          jdk.management
--- a/test/jdk/jdk/jfr/event/runtime/TestThreadDumpEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestThreadDumpEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestThreadDumpEvent
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestThreadParkEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestThreadParkEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -41,9 +41,10 @@
 import jdk.test.lib.thread.TestThread;
 
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  *
  * @run main/othervm jdk.jfr.event.runtime.TestThreadParkEvent
--- a/test/jdk/jdk/jfr/event/runtime/TestThreadSleepEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestThreadSleepEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestThreadSleepEvent
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestThreadStartEndEvents.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestThreadStartEndEvents.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.event.runtime.TestThreadStartEndEvents
  */
--- a/test/jdk/jdk/jfr/event/runtime/TestThrowableInstrumentation.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestThrowableInstrumentation.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,10 +29,11 @@
 import java.util.Objects;
 import jdk.test.lib.Platform;
 
-/*
+/**
  * @test
  * @bug 8153324
  * @summary Verify instrumented Throwable bytecode by compiling it with C1.
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
  *          java.management
--- a/test/jdk/jdk/jfr/event/runtime/TestVMInfoEvent.sh	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestVMInfoEvent.sh	Fri Jul 27 12:16:01 2018 +0100
@@ -22,6 +22,7 @@
 #
 # @test
 # @key jfr
+# @requires vm.hasJFR
 # @library /test/lib /test/jdk
 # @build jdk.jfr.event.runtime.TestVMInfoEvent
 # @run shell TestVMInfoEvent.sh
--- a/test/jdk/jdk/jfr/event/runtime/TestVMOperation.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestVMOperation.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,8 +34,9 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
+ * @requires vm.hasJFR
  * @requires vm.gc == "Parallel" | vm.gc == null
  * @key jfr
  * @library /test/lib
--- a/test/jdk/jdk/jfr/event/runtime/TestVmFlagChangedEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/runtime/TestVmFlagChangedEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,9 +37,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test TestVmFlagChangedEvent
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr
  *          jdk.management
--- a/test/jdk/jdk/jfr/event/sampling/TestNative.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/event/sampling/TestNative.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,6 +40,7 @@
 /*
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
  * @run main/native jdk.jfr.event.sampling.TestNative
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdChangeLogLevel.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdChangeLogLevel.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.test.lib.dcmd.JcmdExecutor;
 import jdk.test.lib.dcmd.PidJcmdExecutor;
 
-/*
+/**
  * @test TestJcmdLogLevelChange
  * @key jfr
  * @summary Test changing log level
+ * @requires vm.hasJFR
  *
  * @library /test/lib /test/jdk
  *
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdConfigure.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdConfigure.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.jfr.internal.Options;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary The test verifies JFR.configure command
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.jcmd.TestJcmdConfigure
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdDump.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdDump.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary The test verifies JFR.dump command
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:FlightRecorderOptions:maxchunksize=1M jdk.jfr.jcmd.TestJcmdDump
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdDumpGeneratedFilename.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdDumpGeneratedFilename.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.test.lib.jfr.FileHelper;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary The test verifies JFR.dump command
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jcmd.TestJcmdDumpGeneratedFilename
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdDumpLimited.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdDumpLimited.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,10 +43,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary The test verifies JFR.dump command
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jcmd.TestJcmdDumpLimited
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdDumpPathToGCRoots.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdDumpPathToGCRoots.java	Fri Jul 27 12:16:01 2018 +0100
@@ -41,9 +41,10 @@
 import jdk.jfr.internal.test.WhiteBox;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @summary Start a recording with or without path-to-gc-roots
+ * @requires vm.hasJFR
  * @modules jdk.jfr/jdk.jfr.internal.test
  * @library /test/lib /test/jdk
  * @key jfr
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdLegacy.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdLegacy.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,9 +38,10 @@
 import jdk.test.lib.jfr.FileHelper;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test TestClassId
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.jcmd.TestJcmdLegacy
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdSaveToFile.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdSaveToFile.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.test.lib.jfr.FileHelper;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary The test verifies that recording can be written to a file both with JFR.start and JFR.stop
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jcmd.TestJcmdSaveToFile
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdStartDirNotExist.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdStartDirNotExist.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Verify error when starting with a dir that does not exist.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jcmd.TestJcmdStartDirNotExist
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdStartInvaldFile.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdStartInvaldFile.java	Fri Jul 27 12:16:01 2018 +0100
@@ -27,10 +27,11 @@
 
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Verify error when starting with invalid file.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jcmd.TestJcmdStartInvaldFile
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdStartPathToGCRoots.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdStartPathToGCRoots.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.EventNames;
 
 
-/*
+/**
  * @test
  * @summary Start a recording with or without path-to-gc-roots
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @key jfr
  *
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdStartReadOnlyFile.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdStartReadOnlyFile.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.test.lib.jfr.FileHelper;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Verify error when starting with read-only file.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jcmd.TestJcmdStartReadOnlyFile
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdStartStopDefault.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdStartStopDefault.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.jfr.FileHelper;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Start a recording without name.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jcmd.TestJcmdStartStopDefault
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdStartWithOptions.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdStartWithOptions.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.jfr.RecordingState;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary The test verifies that recording can be started with options delay|duration|maxage|maxsize
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:+FlightRecorder -XX:FlightRecorderOptions=maxchunksize=2097152 jdk.jfr.jcmd.TestJcmdStartWithOptions
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdStartWithSettings.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdStartWithSettings.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary The test verifies that recording can be started with setting file(s)
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jcmd.TestJcmdStartWithSettings
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdStopInvalidFile.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdStopInvalidFile.java	Fri Jul 27 12:16:01 2018 +0100
@@ -27,10 +27,11 @@
 
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Verify error when stopping with invalid file.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jcmd.TestJcmdStopInvalidFile
  */
--- a/test/jdk/jdk/jfr/jcmd/TestJcmdStopReadOnlyFile.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdStopReadOnlyFile.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.test.lib.jfr.FileHelper;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Verify error when stopping with read-only file.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jcmd.TestJcmdStopReadOnlyFile
  */
--- a/test/jdk/jdk/jfr/jmx/TestClone.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestClone.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,9 +40,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestClone
  */
--- a/test/jdk/jdk/jfr/jmx/TestCloneRepeat.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestCloneRepeat.java	Fri Jul 27 12:16:01 2018 +0100
@@ -39,9 +39,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestCloneRepeat
  */
--- a/test/jdk/jdk/jfr/jmx/TestConfigurationInfo.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestConfigurationInfo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.management.jfr.ConfigurationInfo;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestConfigurationInfo
  */
--- a/test/jdk/jdk/jfr/jmx/TestCopyTo.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestCopyTo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestCopyTo
  */
--- a/test/jdk/jdk/jfr/jmx/TestCopyToInvalidPath.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestCopyToInvalidPath.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestCopyToInvalidPath
  */
--- a/test/jdk/jdk/jfr/jmx/TestCopyToReadOnlyDir.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestCopyToReadOnlyDir.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.FileHelper;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestCopyToReadOnlyDir
  */
--- a/test/jdk/jdk/jfr/jmx/TestCopyToRunning.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestCopyToRunning.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Copy a recording to file while it is running.
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestCopyToRunning
  */
--- a/test/jdk/jdk/jfr/jmx/TestEventTypes.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestEventTypes.java	Fri Jul 27 12:16:01 2018 +0100
@@ -42,10 +42,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Verifies that EventTypes from jmx and FlightRecorder are the same.
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestEventTypes
  */
--- a/test/jdk/jdk/jfr/jmx/TestGetRecordings.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestGetRecordings.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,9 +30,10 @@
 import jdk.management.jfr.FlightRecorderMXBean;
 import jdk.management.jfr.RecordingInfo;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestGetRecordings
  */
--- a/test/jdk/jdk/jfr/jmx/TestGetRecordingsMultiple.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestGetRecordingsMultiple.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.management.jfr.RecordingInfo;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestGetRecordingsMultiple
  */
--- a/test/jdk/jdk/jfr/jmx/TestMultipleRecordings.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestMultipleRecordings.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.management.jfr.FlightRecorderMXBean;
 import jdk.management.jfr.RecordingInfo;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestMultipleRecordings
  */
--- a/test/jdk/jdk/jfr/jmx/TestNotificationListener.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestNotificationListener.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 
 import jdk.management.jfr.FlightRecorderMXBean;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestNotificationListener
  */
--- a/test/jdk/jdk/jfr/jmx/TestPredefinedConfiguration.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestPredefinedConfiguration.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 import jdk.management.jfr.RecordingInfo;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestPredefinedConfiguration
  */
--- a/test/jdk/jdk/jfr/jmx/TestPredefinedConfigurationInvalid.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestPredefinedConfigurationInvalid.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestPredefinedConfigurationInvalid
  */
--- a/test/jdk/jdk/jfr/jmx/TestRecordingOptions.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestRecordingOptions.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.management.jfr.FlightRecorderMXBean;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestRecordingOptions
  */
--- a/test/jdk/jdk/jfr/jmx/TestRecordingSettings.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestRecordingSettings.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 import jdk.management.jfr.FlightRecorderMXBean;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestRecordingSettings
  */
--- a/test/jdk/jdk/jfr/jmx/TestRecordingSettingsInvalid.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestRecordingSettingsInvalid.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.management.jfr.FlightRecorderMXBean;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Verify exception when setting invalid settings.
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestRecordingSettingsInvalid
  */
--- a/test/jdk/jdk/jfr/jmx/TestRecordingSettingsMultiple.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestRecordingSettingsMultiple.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,9 +30,10 @@
 
 import jdk.management.jfr.FlightRecorderMXBean;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestRecordingSettingsMultiple
  */
--- a/test/jdk/jdk/jfr/jmx/TestRecordingState.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestRecordingState.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.management.jfr.FlightRecorderMXBean;
 import jdk.management.jfr.RecordingInfo;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestRecordingState
  */
--- a/test/jdk/jdk/jfr/jmx/TestRecordingStateInvalid.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestRecordingStateInvalid.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestRecordingStateInvalid
  */
--- a/test/jdk/jdk/jfr/jmx/TestSetConfiguration.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestSetConfiguration.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestSetConfiguration
  */
--- a/test/jdk/jdk/jfr/jmx/TestSetConfigurationInvalid.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestSetConfigurationInvalid.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.EventNames;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Verify Exception when setting invalid config.
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestSetConfigurationInvalid
  */
--- a/test/jdk/jdk/jfr/jmx/TestSnapshot.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestSnapshot.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,8 +34,10 @@
 import jdk.management.jfr.RecordingInfo;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/* @test
+/**
+ * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestSnapshot
  */
--- a/test/jdk/jdk/jfr/jmx/TestStartRecording.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestStartRecording.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.management.jfr.EventTypeInfo;
 import jdk.management.jfr.FlightRecorderMXBean;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestStartRecording
  */
--- a/test/jdk/jdk/jfr/jmx/TestStream.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestStream.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,9 +35,10 @@
 import jdk.management.jfr.FlightRecorderMXBean;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestStream
  */
--- a/test/jdk/jdk/jfr/jmx/TestStreamClosed.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestStreamClosed.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Call readStream() after closeStream()
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestStreamClosed
  */
--- a/test/jdk/jdk/jfr/jmx/TestStreamMultiple.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestStreamMultiple.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.SimpleEventHelper;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestStreamMultiple
  */
--- a/test/jdk/jdk/jfr/jmx/TestWrongId.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/TestWrongId.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.test.lib.jfr.VoidFunction;
 
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Call functions with invalid argument id. Verify Exception.
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.TestWrongId
  */
--- a/test/jdk/jdk/jfr/jmx/info/TestConfigurationInfo.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/info/TestConfigurationInfo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.management.jfr.ConfigurationInfo;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test for ConfigurationInfo. Compare infos from java API and jmx API.
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.info.TestConfigurationInfo
  */
--- a/test/jdk/jdk/jfr/jmx/info/TestEventTypeInfo.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/info/TestEventTypeInfo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.management.jfr.FlightRecorderMXBean;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test for EventTypeInfo
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.info.TestEventTypeInfo
  */
--- a/test/jdk/jdk/jfr/jmx/info/TestRecordingInfo.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/info/TestRecordingInfo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.management.jfr.RecordingInfo;
 import jdk.test.lib.jfr.CommonHelper;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test for RecordingInfo
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.info.TestRecordingInfo
  */
--- a/test/jdk/jdk/jfr/jmx/info/TestSettingDescriptorInfo.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/info/TestSettingDescriptorInfo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 import jdk.management.jfr.EventTypeInfo;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test for SettingDescriptorInfo. Compare infos from java API and jmx API.
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm jdk.jfr.jmx.info.TestSettingDescriptorInfo
  */
--- a/test/jdk/jdk/jfr/jmx/security/TestEnoughPermission.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/security/TestEnoughPermission.java	Fri Jul 27 12:16:01 2018 +0100
@@ -35,10 +35,11 @@
 import jdk.management.jfr.FlightRecorderMXBean;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test with minimal needed permissions. All functions should work.
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm/secure=java.lang.SecurityManager/java.security.policy=enough.policy jdk.jfr.jmx.security.TestEnoughPermission
  */
--- a/test/jdk/jdk/jfr/jmx/security/TestNoControlPermission.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/security/TestNoControlPermission.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Verify we get SecurityExceptions when missing management permission "control".
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm/secure=java.lang.SecurityManager/java.security.policy=nocontrol.policy jdk.jfr.jmx.security.TestNoControlPermission
  */
--- a/test/jdk/jdk/jfr/jmx/security/TestNoMonitorPermission.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/security/TestNoMonitorPermission.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import jdk.test.lib.jfr.CommonHelper;
 import jdk.test.lib.jfr.VoidFunction;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Verify we get SecurityExceptions when missing management permission "monitor".
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm/secure=java.lang.SecurityManager/java.security.policy=nomonitor.policy jdk.jfr.jmx.security.TestNoMonitorPermission
  */
--- a/test/jdk/jdk/jfr/jmx/security/TestNotificationListenerPermission.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jmx/security/TestNotificationListenerPermission.java	Fri Jul 27 12:16:01 2018 +0100
@@ -37,10 +37,11 @@
 
 import jdk.jfr.jmx.JmxHelper;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Test with minimal needed permissions. All functions should work.
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm/secure=java.lang.SecurityManager/java.security.policy=listener.policy jdk.jfr.jmx.security.TestNotificationListenerPermission
  */
--- a/test/jdk/jdk/jfr/jvm/TestBeginAndEnd.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestBeginAndEnd.java	Fri Jul 27 12:16:01 2018 +0100
@@ -27,9 +27,10 @@
 
 import jdk.jfr.internal.JVM;
 
-/*
+/**
  * @test TestBeginAndEnd
  * @key jfr
+ * @requires vm.hasJFR
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.jvm.TestBeginAndEnd
  */
--- a/test/jdk/jdk/jfr/jvm/TestClassId.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestClassId.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,9 +31,10 @@
 import jdk.jfr.internal.JVM;
 import jdk.jfr.internal.Type;
 
-/*
+/**
  * @test TestClassId
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.jvm.TestClassId
--- a/test/jdk/jdk/jfr/jvm/TestCounterTime.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestCounterTime.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 
 import jdk.jfr.internal.JVM;
 
-/*
+/**
  * @test TestCounterTime
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.jvm.TestCounterTime
--- a/test/jdk/jdk/jfr/jvm/TestCreateNative.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestCreateNative.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,10 +30,11 @@
 import jdk.jfr.Recording;
 import jdk.jfr.internal.JVM;
 
-/*
+/**
  * @test
  * @summary Checks that the JVM can rollback on native initialization failures.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.jvm.TestCreateNative
--- a/test/jdk/jdk/jfr/jvm/TestDumpOnCrash.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestDumpOnCrash.java	Fri Jul 27 12:16:01 2018 +0100
@@ -36,10 +36,11 @@
 import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.process.ProcessTools;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Verifies that data associated with a running recording can be evacuated to an hs_err_pidXXX.jfr when the VM crashes
+ * @requires vm.hasJFR
  *
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
--- a/test/jdk/jdk/jfr/jvm/TestGetAllEventClasses.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestGetAllEventClasses.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,9 +30,10 @@
 
 import java.util.List;
 
-/*
+/**
  * @test TestGetAllEventClasses
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @modules jdk.jfr/jdk.jfr.internal
  *
--- a/test/jdk/jdk/jfr/jvm/TestGetEventWriter.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestGetEventWriter.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,9 +30,10 @@
 import jdk.jfr.internal.EventWriter;
 import jdk.jfr.internal.JVM;
 
-/*
+/**
  * @test TestGetEventWriter
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  *
--- a/test/jdk/jdk/jfr/jvm/TestGetStackTraceId.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestGetStackTraceId.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 import jdk.jfr.internal.JVM;
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test TestGetStackTraceId
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.jvm.TestGetStackTraceId
--- a/test/jdk/jdk/jfr/jvm/TestJFRIntrinsic.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestJFRIntrinsic.java	Fri Jul 27 12:16:01 2018 +0100
@@ -23,10 +23,11 @@
  * questions.
  */
 
-/*
+/**
  * @test
  * @summary Intrinsic for JFR
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  *
  * @modules jdk.jfr/jdk.jfr.internal
--- a/test/jdk/jdk/jfr/jvm/TestJavaEvent.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestJavaEvent.java	Fri Jul 27 12:16:01 2018 +0100
@@ -40,9 +40,10 @@
 import jdk.jfr.consumer.RecordedEvent;
 import jdk.jfr.consumer.RecordingFile;
 
-/*
+/**
  * @test TestGetThreadId
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.jvm.TestJavaEvent
--- a/test/jdk/jdk/jfr/jvm/TestJfrJavaBase.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestJfrJavaBase.java	Fri Jul 27 12:16:01 2018 +0100
@@ -23,11 +23,12 @@
  * questions.
  */
 
-/*
+/**
  * @test
  * @bug 8157032
  * @key jfr
  * @summary verify that jfr can not be used when JVM is executed only with java.base
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
  * @run driver jdk.jfr.jvm.TestJfrJavaBase
--- a/test/jdk/jdk/jfr/jvm/TestLargeJavaEvent512k.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestLargeJavaEvent512k.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,9 +43,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.Stressor;
 
-/*
+/**
  * @test TestLargeJavaEvent512k
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  *    java.base/jdk.internal.org.objectweb.asm
--- a/test/jdk/jdk/jfr/jvm/TestLargeJavaEvent64k.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestLargeJavaEvent64k.java	Fri Jul 27 12:16:01 2018 +0100
@@ -43,9 +43,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.Stressor;
 
-/*
+/**
  * @test TestLargeJavaEvent64k
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  *    java.base/jdk.internal.org.objectweb.asm
--- a/test/jdk/jdk/jfr/jvm/TestLogImplementation.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestLogImplementation.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,9 +30,10 @@
 import jdk.jfr.internal.LogTag;
 import jdk.jfr.internal.LogLevel;
 
-/*
+/**
  * @test TestLogImplementation
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.jvm.TestLogImplementation
--- a/test/jdk/jdk/jfr/jvm/TestLogOutput.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestLogOutput.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 import java.util.ArrayList;
 import java.util.List;
 
-/*
+/**
  * @test TestLogOutput
  * @key jfr
  * @summary Sanity test jfr logging output
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -Xlog:disable -Xlog:jfr*=trace:file=jfr_trace.txt -XX:StartFlightRecording=duration=1s,filename=recording.jfr jdk.jfr.jvm.TestLogOutput
  */
--- a/test/jdk/jdk/jfr/jvm/TestPid.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestPid.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 
 import jdk.jfr.internal.JVM;
 
-/*
+/**
  * @test TestPid
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  * @run main/othervm jdk.jfr.jvm.TestPid
--- a/test/jdk/jdk/jfr/jvm/TestUnloadEventClassCount.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestUnloadEventClassCount.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.jfr.FlightRecorder;
 import jdk.jfr.internal.JVM;
 
-/*
+/**
  * @test
  * @key jfr
  * @summary Unit test for JVM#getUnloadedEventClassCount
+ * @requires vm.hasJFR
  *
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
--- a/test/jdk/jdk/jfr/jvm/TestUnsupportedVM.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/jvm/TestUnsupportedVM.java	Fri Jul 27 12:16:01 2018 +0100
@@ -64,9 +64,10 @@
 import jdk.management.jfr.SettingDescriptorInfo;
 import jdk.test.lib.Utils;
 
-/*
+/**
  * @test TestUnsupportedVM
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @modules jdk.jfr
  *          jdk.management.jfr
--- a/test/jdk/jdk/jfr/startupargs/TestBadOptionValues.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestBadOptionValues.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.process.ProcessTools;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
--- a/test/jdk/jdk/jfr/startupargs/TestDumpOnExit.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestDumpOnExit.java	Fri Jul 27 12:16:01 2018 +0100
@@ -38,10 +38,11 @@
 import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.process.ProcessTools;
 
-/*
+/**
  * @test
  * @summary Start a FlightRecording with dumponexit. Verify dump exists.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.startupargs.TestDumpOnExit
  */
--- a/test/jdk/jdk/jfr/startupargs/TestMemoryOptions.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestMemoryOptions.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,9 +33,10 @@
 import jdk.test.lib.process.ProcessTools;
 import jdk.internal.misc.Unsafe;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @modules jdk.jfr/jdk.jfr.internal
  *                 java.base/jdk.internal.misc
--- a/test/jdk/jdk/jfr/startupargs/TestMultipleStartupRecordings.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestMultipleStartupRecordings.java	Fri Jul 27 12:16:01 2018 +0100
@@ -29,9 +29,10 @@
 import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.process.ProcessTools;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  *
  * @library /test/lib
  *
--- a/test/jdk/jdk/jfr/startupargs/TestOldObjectQueueSize.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestOldObjectQueueSize.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.jfr.EventNames;
 import jdk.test.lib.jfr.Events;
 
-/*
+/**
  * @test
  * @summary Test -XX:FlightRecorderOptions=old-object-queue-size
+ * @requires vm.hasJFR
  * @modules jdk.jfr/jdk.jfr.internal.test
  * @library /test/lib
  * @key jfr
--- a/test/jdk/jdk/jfr/startupargs/TestRepositoryPath.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestRepositoryPath.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Set repository path. Verify recording created in repo.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:StartFlightRecording=name=TestStartRecording,settings=profile -XX:FlightRecorderOptions=repository=./repo jdk.jfr.startupargs.TestRepositoryPath
  */
--- a/test/jdk/jdk/jfr/startupargs/TestRepositoryPathLong.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestRepositoryPathLong.java	Fri Jul 27 12:16:01 2018 +0100
@@ -31,10 +31,11 @@
 
 import jdk.test.lib.Asserts;
 
-/*
+/**
  * @test
  * @summary Set repository path. Verify recording created in repo.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:StartFlightRecording=name=myrec,settings=profile -XX:FlightRecorderOptions=repository=./subdirectory/subdirectory1/subdirectory2/subdirectory3/subdirectory4/subdirectory5/subdirectory6/subdirectory7/subdirectory8/subdirectory9/subdirectory10/subdirectory11/subdirectory12/subdirectory13/subdirectory14/subdirectory15 jdk.jfr.startupargs.TestRepositoryPathLong
  */
--- a/test/jdk/jdk/jfr/startupargs/TestRetransform.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestRetransform.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,9 +32,10 @@
 import jdk.test.lib.jfr.Events;
 import jdk.test.lib.jfr.SimpleEvent;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm -XX:FlightRecorderOptions=retransform=false jdk.jfr.startupargs.TestRetransform
  * @run main/othervm -XX:FlightRecorderOptions=retransform=true jdk.jfr.startupargs.TestRetransform
--- a/test/jdk/jdk/jfr/startupargs/TestRetransformUsingLog.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestRetransformUsingLog.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,9 +34,10 @@
 import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.process.ProcessTools;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib
  * @run main/othervm jdk.jfr.startupargs.TestRetransformUsingLog
  */
--- a/test/jdk/jdk/jfr/startupargs/TestStartDelay.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestStartDelay.java	Fri Jul 27 12:16:01 2018 +0100
@@ -33,10 +33,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.CommonHelper;
 
-/*
+/**
  * @test
  * @summary Start a recording with delay. Verify recording starts later.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:StartFlightRecording=name=TestStartDelay,delay=5000s jdk.jfr.startupargs.TestStartDelay
  */
--- a/test/jdk/jdk/jfr/startupargs/TestStartDelayRunning.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestStartDelayRunning.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.CommonHelper;
 
-/*
+/**
  * @test
  * @summary Verify that a recopding with a delay is started.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:StartFlightRecording=name=TestStartDelay,delay=1s jdk.jfr.startupargs.TestStartDelayRunning
  */
--- a/test/jdk/jdk/jfr/startupargs/TestStartDuration.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestStartDuration.java	Fri Jul 27 12:16:01 2018 +0100
@@ -34,10 +34,11 @@
 import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.process.ProcessTools;
 
-/*
+/**
  * @test
  * @summary Start a recording with duration. Verify recording stops.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main jdk.jfr.startupargs.TestStartDuration
  */
--- a/test/jdk/jdk/jfr/startupargs/TestStartMaxAgeSize.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestStartMaxAgeSize.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.jfr.CommonHelper;
 
-/*
+/**
  * @test
  * @summary Start a recording with delay. Verify recording starts later.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:StartFlightRecording=name=TestStartMaxAgeSize,maxage=10s,maxsize=1000000 jdk.jfr.startupargs.TestStartMaxAgeSize
  */
--- a/test/jdk/jdk/jfr/startupargs/TestStartName.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestStartName.java	Fri Jul 27 12:16:01 2018 +0100
@@ -30,9 +30,10 @@
 import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.process.ProcessTools;
 
-/*
+/**
  * @test
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main jdk.jfr.startupargs.TestStartName
  */
--- a/test/jdk/jdk/jfr/startupargs/TestStartRecording.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/jdk/jfr/startupargs/TestStartRecording.java	Fri Jul 27 12:16:01 2018 +0100
@@ -32,10 +32,11 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.process.OutputAnalyzer;
 
-/*
+/**
  * @test
  * @summary Start a recording with -XX:StartFlightRecording. Dump recording with jcmd.
  * @key jfr
+ * @requires vm.hasJFR
  * @library /test/lib /test/jdk
  * @run main/othervm -XX:StartFlightRecording=name=TestStartRecording,settings=profile jdk.jfr.startupargs.TestStartRecording
  */
--- a/test/jdk/sun/security/pkcs11/PKCS11Test.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/sun/security/pkcs11/PKCS11Test.java	Fri Jul 27 12:16:01 2018 +0100
@@ -154,7 +154,15 @@
 
     public abstract void main(Provider p) throws Exception;
 
+    protected boolean skipTest(Provider p) {
+        return false;
+    }
+
     private void premain(Provider p) throws Exception {
+        if (skipTest(p)) {
+            return;
+        }
+
         // set a security manager and policy before a test case runs,
         // and disable them after the test case finished
         try {
@@ -327,9 +335,10 @@
     }
 
     static boolean isBadNSSVersion(Provider p) {
-        if (isNSS(p) && badNSSVersion) {
+        double nssVersion = getNSSVersion();
+        if (isNSS(p) && nssVersion >= 3.11 && nssVersion < 3.12) {
             System.out.println("NSS 3.11 has a DER issue that recent " +
-                    "version do not.");
+                    "version do not, skipping");
             return true;
         }
         return false;
@@ -409,7 +418,11 @@
             return nss3_version;
 
         try {
-            libfile = getNSSLibDir() + System.mapLibraryName(library);
+            String libdir = getNSSLibDir();
+            if (libdir == null) {
+                return 0.0;
+            }
+            libfile = libdir + System.mapLibraryName(library);
             try (FileInputStream is = new FileInputStream(libfile)) {
                 byte[] data = new byte[1000];
                 int read = 0;
@@ -663,9 +676,6 @@
 
     private final static char[] hexDigits = "0123456789abcdef".toCharArray();
 
-    static final boolean badNSSVersion =
-            getNSSVersion() >= 3.11 && getNSSVersion() < 3.12;
-
     private static final String distro = distro();
 
     static final boolean badSolarisSparc =
--- a/test/jdk/sun/security/pkcs11/Secmod/TestNssDbSqlite.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/sun/security/pkcs11/Secmod/TestNssDbSqlite.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Red Hat, Inc. and/or its affiliates.
+ * Copyright (c) 2017, 2018, Red Hat, Inc. and/or its affiliates.
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -26,6 +26,8 @@
  * @test
  * @bug 8165996
  * @summary Test NSS DB Sqlite
+ * @comment There is no NSS on Aix.
+ * @requires os.family != "aix"
  * @library ../
  * @modules java.base/sun.security.rsa
  *          java.base/sun.security.provider
@@ -64,7 +66,9 @@
 
     public static void main(String[] args) throws Exception {
 
-        initialize();
+        if (!initialize()) {
+            return;
+        }
 
         if (enableDebug) {
             System.out.println("SunPKCS11 provider: " +
@@ -106,14 +110,15 @@
         }
     }
 
-    private static void initialize() throws Exception {
-        initializeProvider();
+    private static boolean initialize() throws Exception {
+        return initializeProvider();
     }
 
-    private static void initializeProvider () throws Exception {
+    private static boolean initializeProvider() throws Exception {
         useSqlite(true);
         if (!initSecmod()) {
-            return;
+            System.out.println("Cannot init security module database, skipping");
+            return false;
         }
 
         sunPKCS11NSSProvider = getSunPKCS11(BASE + SEP + "nss-sqlite.cfg");
@@ -130,5 +135,7 @@
         gen.generate(2048);
         privateKey = gen.getPrivateKey();
         certificate = gen.getSelfCertificate(new X500Name("CN=Me"), 365);
+
+        return true;
     }
 }
--- a/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,12 +47,17 @@
     }
 
     @Override
-    public void main(Provider provider) throws Exception {
+    protected boolean skipTest(Provider provider) {
         if (isNSS(provider) && getNSSVersion() >= 3.14) {
             System.out.println("Skip testing NSS " + getNSSVersion());
-            return;
+            return true;
         }
 
+        return false;
+    }
+
+    @Override
+    public void main(Provider provider) throws Exception {
         /*
          * Use Solaris SPARC 11.2 or later to avoid an intermittent failure
          * when running SunPKCS11-Solaris (8044554)
--- a/test/jdk/sun/security/pkcs11/ec/TestCurves.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/sun/security/pkcs11/ec/TestCurves.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -51,20 +51,21 @@
     }
 
     @Override
-    public void main(Provider p) throws Exception {
+    protected boolean skipTest(Provider p) {
         if (p.getService("KeyAgreement", "ECDH") == null) {
             System.out.println("Not supported by provider, skipping");
-            return;
+            return true;
         }
 
-        if (isBadNSSVersion(p)) {
-            return;
+        if (isBadNSSVersion(p) || isBadSolarisSparc(p)) {
+            return true;
         }
 
-        if (isBadSolarisSparc(p)) {
-            return;
-        }
+        return false;
+    }
 
+    @Override
+    public void main(Provider p) throws Exception {
         // Check if this is sparc for later failure avoidance.
         boolean sparc = false;
         if (props.getProperty("os.arch").equals("sparcv9")) {
--- a/test/jdk/sun/security/pkcs11/ec/TestECDH.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/sun/security/pkcs11/ec/TestECDH.java	Fri Jul 27 12:16:01 2018 +0100
@@ -91,17 +91,22 @@
     private final static String privBrainpoolP512r1b = "3062020100301406072a8648ce3d020106092b240303020801010d044730450201010440230e18e1bcc88a362fa54e4ea3902009292f7f8033624fd471b5d8ace49d12cfabbc19963dab8e2f1eba00bffb29e4d72d13f2224562f405cb80503666b25429";
     private final static String secretBrainpoolP512r1 = "a7927098655f1f9976fa50a9d566865dc530331846381c87256baf3226244b76d36403c024d7bbf0aa0803eaff405d3d24f11a9b5c0bef679fe1454b21c4cd1f";
 
-    @Override public void main(Provider p) throws Exception {
+    @Override
+    protected boolean skipTest(Provider p) {
         if (p.getService("KeyAgreement", "ECDH") == null) {
             System.out.println("Provider does not support ECDH, skipping");
-            return;
+            return true;
         }
 
         if (isNSS(p) && getNSSECC() == ECCState.Basic) {
-            System.out.println("NSS only supports Basic ECC.  Skipping..");
-            return;
+            System.out.println("NSS only supports Basic ECC, skipping");
+            return true;
         }
 
+        return false;
+    }
+
+    @Override public void main(Provider p) throws Exception {
         /*
          * PKCS11Test.main will remove this provider if needed
          */
--- a/test/jdk/sun/security/pkcs11/ec/TestECDH2.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/sun/security/pkcs11/ec/TestECDH2.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -111,16 +111,21 @@
     }
 
     @Override
-    public void main(Provider provider) throws Exception {
+    protected boolean skipTest(Provider provider) {
         if (provider.getService("KeyAgreement", "ECDH") == null) {
             System.out.println("ECDH not supported, skipping");
-            return;
+            return true;
         }
 
         if (isBadNSSVersion(provider)) {
-            return;
+            return true;
         }
 
+        return false;
+    }
+
+    @Override
+    public void main(Provider provider) throws Exception {
         kf = KeyFactory.getInstance("EC", provider);
         kpg = KeyPairGenerator.getInstance("EC", provider);
 
--- a/test/jdk/sun/security/pkcs11/ec/TestECDSA.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/sun/security/pkcs11/ec/TestECDSA.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -120,21 +120,22 @@
     }
 
     @Override
-    public void main(Provider provider) throws Exception {
-        long start = System.currentTimeMillis();
-
+    protected boolean skipTest(Provider provider) {
         if (provider.getService("Signature", "SHA1withECDSA") == null) {
             System.out.println("ECDSA not supported, skipping");
-            return;
+            return true;
         }
 
-        if (isBadNSSVersion(provider)) {
-            return;
+        if (isBadNSSVersion(provider) || isBadSolarisSparc(provider)) {
+            return true;
         }
 
-        if (isBadSolarisSparc(provider)) {
-            return;
-        }
+        return false;
+    }
+
+    @Override
+    public void main(Provider provider) throws Exception {
+        long start = System.currentTimeMillis();
 
         /*
          * PKCS11Test.main will remove this provider if needed
--- a/test/jdk/sun/security/pkcs11/ec/TestECDSA2.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/sun/security/pkcs11/ec/TestECDSA2.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -102,6 +102,26 @@
     }
 
     @Override
+    protected boolean skipTest(Provider provider) {
+        boolean testP256 =
+                provider.getService("Signature", "SHA256withECDSA") != null;
+
+        boolean testP384 =
+                provider.getService("Signature", "SHA384withECDSA") != null;
+
+        if (!testP256 && !testP384) {
+            System.out.println("ECDSA not supported, skipping");
+            return true;
+        }
+
+        if (isBadNSSVersion(provider)) {
+            return true;
+        }
+
+        return false;
+    }
+
+    @Override
     public void main(Provider provider) throws Exception {
         boolean testP256 =
             (provider.getService("Signature", "SHA256withECDSA") != null);
@@ -109,15 +129,6 @@
         boolean testP384 =
             (provider.getService("Signature", "SHA384withECDSA") != null);
 
-        if (!testP256 && !testP384) {
-            System.out.println("ECDSA not supported, skipping");
-            return;
-        }
-
-        if (isBadNSSVersion(provider)) {
-            return;
-        }
-
         kf = KeyFactory.getInstance("EC", provider);
 
         long start = System.currentTimeMillis();
--- a/test/jdk/sun/security/pkcs11/ec/TestECGenSpec.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/sun/security/pkcs11/ec/TestECGenSpec.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,16 +47,21 @@
     }
 
     @Override
-    public void main(Provider p) throws Exception {
+    protected boolean skipTest(Provider p) {
         if (p.getService("Signature", "SHA1withECDSA") == null) {
             System.out.println("Provider does not support ECDSA, skipping...");
-            return;
+            return true;
         }
 
         if (isBadNSSVersion(p)) {
-            return;
+            return true;
         }
 
+        return false;
+    }
+
+    @Override
+    public void main(Provider p) throws Exception {
         String[] names = { "secp256r1", "NIST P-192", "sect163k1", "1.3.132.0.26",
             "X9.62 c2tnb239v1"};
         int curves = 1;
--- a/test/jdk/tools/jimage/JImageListTest.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/tools/jimage/JImageListTest.java	Fri Jul 27 12:16:01 2018 +0100
@@ -224,6 +224,8 @@
 
     public static void main(String[] args) throws Throwable {
         new JImageListTest().runTests();
+        // Just to ensure that jimage files will be unmapped
+        System.gc();
     }
 }
 
--- a/test/jdk/tools/launcher/SourceMode.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jdk/tools/launcher/SourceMode.java	Fri Jul 27 12:16:01 2018 +0100
@@ -21,7 +21,7 @@
  * questions.
  */
 
-/*
+/**
  * @test
  * @bug 8192920 8204588
  * @summary Test source mode
@@ -298,11 +298,11 @@
     @Test
     void testTerminalOptionInShebang() throws IOException {
         starting("testTerminalOptionInShebang");
-        if (skipShebangTest || isMacOSX || isSolaris) {
+        if (skipShebangTest || isAIX || isMacOSX || isSolaris) {
             // On MacOSX, we cannot distinguish between terminal options on the
             // shebang line and those on the command line.
             // On Solaris, all options after the first on the shebang line are
-            // ignored.
+            // ignored. Similar on AIX.
             log.println("SKIPPED");
             return;
         }
@@ -322,11 +322,11 @@
     @Test
     void testTerminalOptionInShebangAtFile() throws IOException {
         starting("testTerminalOptionInShebangAtFile");
-        if (skipShebangTest || isMacOSX || isSolaris) {
+        if (skipShebangTest || isAIX || isMacOSX || isSolaris) {
             // On MacOSX, we cannot distinguish between terminal options in a
             // shebang @-file and those on the command line.
             // On Solaris, all options after the first on the shebang line are
-            // ignored.
+            // ignored. Similar on AIX.
             log.println("SKIPPED");
             return;
         }
@@ -349,11 +349,11 @@
     @Test
     void testMainClassInShebang() throws IOException {
         starting("testMainClassInShebang");
-        if (skipShebangTest || isMacOSX || isSolaris) {
+        if (skipShebangTest || isAIX || isMacOSX || isSolaris) {
             // On MacOSX, we cannot distinguish between a main class on the
             // shebang line and one on the command line.
             // On Solaris, all options after the first on the shebang line are
-            // ignored.
+            // ignored. Similar on AIX.
             log.println("SKIPPED");
             return;
         }
--- a/test/jtreg-ext/requires/VMProps.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/jtreg-ext/requires/VMProps.java	Fri Jul 27 12:16:01 2018 +0100
@@ -79,6 +79,9 @@
         // vm.hasSAandCanAttach is "true" if the VM contains the serviceability agent
         // and jhsdb and it can attach to the VM.
         map.put("vm.hasSAandCanAttach", vmHasSAandCanAttach());
+        // vm.hasJFR is "true" if JFR is included in the build of the VM and
+        // so tests can be executed.
+        map.put("vm.hasJFR", vmHasJFR());
         map.put("vm.cpu.features", cpuFeatures());
         map.put("vm.rtm.cpu", vmRTMCPU());
         map.put("vm.rtm.os", vmRTMOS());
@@ -288,6 +291,14 @@
     }
 
     /**
+     * @return "true" if the VM is compiled with Java Flight Recorder (JFR)
+     * support.
+     */
+    protected String vmHasJFR() {
+        return "" + WB.isJFRIncludedInVmBuild();
+    }
+
+    /**
      * @return true if VM runs RTM supported OS and false otherwise.
      */
     protected String vmRTMOS() {
@@ -432,7 +443,8 @@
                 System.getProperty("java.home") + "/release"))) {
             Properties properties = new Properties();
             properties.load(in);
-            return properties.getProperty("IMPLEMENTOR").replace("\"", "");
+            String implementorProperty = properties.getProperty("IMPLEMENTOR");
+            return (implementorProperty == null) ? "null" : implementorProperty.replace("\"", "");
         } catch (IOException e) {
             e.printStackTrace();
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/jdk/javadoc/doclet/testSerializedFormWithSee/TestSerializedFormWithSee.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8207214
+ * @summary Test serialized forms, with at-see to other members
+ * @library /tools/lib ../lib
+ * @modules jdk.javadoc/jdk.javadoc.internal.tool
+ * @build JavadocTester toolbox.ToolBox
+ * @run main TestSerializedFormWithSee
+ */
+
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import toolbox.ToolBox;
+
+/**
+ * Test the links generated in source files with combinations
+ * of modules, Serializable, and @see for public and private methods.
+ *
+ * In the various test cases, in addition to the explicit call
+ * to {@code checkExit}, the primary check is the implicit call
+ * to {@code checkLinks}, to verify that there are no broken
+ * links in the generated files.
+ */
+public class TestSerializedFormWithSee extends JavadocTester {
+
+    public static void main(String... args) throws Exception {
+        TestSerializedFormWithSee tester = new TestSerializedFormWithSee();
+        tester.runTests(m -> new Object[] { Paths.get(m.getName()) });
+    }
+
+    private final ToolBox tb;
+
+    TestSerializedFormWithSee() {
+        tb = new ToolBox();
+    }
+
+    @Test
+    public void test_noModule_notSerializable(Path base) throws IOException {
+        Path srcDir = generateSource(base, false, false);
+
+        Path outDir = base.resolve("out");
+        javadoc("-d", outDir.toString(),
+                "-sourcepath", srcDir.toString(),
+                "p");
+        checkExit(Exit.OK);
+    }
+
+    @Test
+    public void test_noModule_serializable(Path base) throws IOException {
+        Path srcDir = generateSource(base, false, true);
+
+        Path outDir = base.resolve("out");
+        javadoc("-d", outDir.toString(),
+                "-sourcepath", srcDir.toString(),
+                "p");
+        checkExit(Exit.OK);
+    }
+
+    @Test
+    public void test_module_notSerializable(Path base) throws IOException {
+        Path srcDir = generateSource(base, true, false);
+
+        Path outDir = base.resolve("out");
+        javadoc("-d", outDir.toString(),
+                "-sourcepath", srcDir.toString(),
+                "m/p");
+        checkExit(Exit.OK);
+    }
+
+    @Test
+    public void test_module_serializable(Path base) throws IOException {
+        Path srcDir = generateSource(base, true, true);
+
+        Path outDir = base.resolve("out");
+        javadoc("-d", outDir.toString(),
+                "-sourcepath", srcDir.toString(),
+                "m/p");
+        checkExit(Exit.OK);
+    }
+
+    Path generateSource(Path base, boolean module, boolean serializable) throws IOException {
+        Path dir = base.resolve("src");
+        if (module) {
+            tb.writeJavaFiles(dir, "module m { }");
+        }
+        StringBuilder sb = new StringBuilder();
+        sb.append("package p;\n");
+        sb.append("public class C " + (serializable ? "implements java.io.Serializable " : "") + "{\n");
+        for (String access : new String[] { "public", "private" }) {
+            sb.append("    /**\n");
+            sb.append("     * This is a " + access + " " + (serializable ? "serializable " : "") + "field.\n");
+            sb.append("     * More description.\n");
+            sb.append("     * " + (serializable ? "@serial This is the serial description." : "") + "\n");
+            sb.append("     * @see #publicMethod()\n");
+            sb.append("     * @see #privateMethod()\n");
+            sb.append("     */\n");
+            sb.append("    " + access + " int " + access + "Field;\n");
+        }
+        for (String access : new String[] { "public", "private" }) {
+            sb.append("    /**\n");
+            sb.append("     * This is a " + access + " method.\n");
+            sb.append("     * More description.\n");
+            sb.append("     * @return zero.\n");
+            sb.append("     */\n");
+            sb.append("    " + access + " int " + access + "Method() { return 0; }\n");
+        }
+        sb.append("    }\n");
+        tb.writeJavaFiles(dir, sb.toString());
+        return dir;
+    }
+}
--- a/test/langtools/tools/javac/processing/environment/round/AnnotatedElementInfo.java	Tue Jul 24 10:07:26 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-import java.lang.annotation.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-/**
- * Hold information about the set of elements expected to be annotated
- * with a given annotation.
- */
-@Retention(RUNTIME)
-public @interface AnnotatedElementInfo {
-    String annotationName();
-    int expectedSize();
-    String[] names();
-}
--- a/test/langtools/tools/javac/processing/environment/round/BuriedAnnotations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/round/BuriedAnnotations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,6 +21,8 @@
  * questions.
  */
 
+import annot.AnnotatedElementInfo;
+
 /**
  * Class to hold annotations for TestElementsAnnotatedWith.
  */
--- a/test/langtools/tools/javac/processing/environment/round/C2.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/round/C2.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,6 +21,8 @@
  * questions.
  */
 
+import annot.AnnotatedElementInfo;
+
 @AnnotatedElementInfo(annotationName="InheritedAnnotation",
                       expectedSize=1,
                       names="C2")
--- a/test/langtools/tools/javac/processing/environment/round/ErroneousAnnotations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/round/ErroneousAnnotations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -2,6 +2,8 @@
  * Class to hold annotations for TestElementsAnnotatedWith.
  */
 
+import annot.AnnotatedElementInfo;
+
 @AnnotatedElementInfo(annotationName="java.lang.SuppressWarnings",
                       expectedSize=0,
                       names={})
--- a/test/langtools/tools/javac/processing/environment/round/ErroneousAnnotations.out	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/round/ErroneousAnnotations.out	Fri Jul 27 12:16:01 2018 +0100
@@ -1,3 +1,3 @@
-ErroneousAnnotations.java:8:2: compiler.err.cant.resolve: kindname.class, Undefined, , 
-ErroneousAnnotations.java:10:6: compiler.err.cant.resolve.location: kindname.class, Undefined, , , (compiler.misc.location: kindname.class, ErroneousAnnotations, null)
+ErroneousAnnotations.java:10:2: compiler.err.cant.resolve: kindname.class, Undefined, , 
+ErroneousAnnotations.java:12:6: compiler.err.cant.resolve.location: kindname.class, Undefined, , , (compiler.misc.location: kindname.class, ErroneousAnnotations, null)
 2 errors
--- a/test/langtools/tools/javac/processing/environment/round/Foo.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/round/Foo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,7 +21,9 @@
  * questions.
  */
 
-@AnnotatedElementInfo(annotationName="AnnotatedElementInfo",
+import annot.AnnotatedElementInfo;
+
+@AnnotatedElementInfo(annotationName="annot.AnnotatedElementInfo",
                       expectedSize=1,
                       names="Foo")
 public class Foo {}
--- a/test/langtools/tools/javac/processing/environment/round/ParameterAnnotations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/round/ParameterAnnotations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,6 +21,8 @@
  * questions.
  */
 
+import annot.AnnotatedElementInfo;
+
 /**
  * Class to hold annotations for ElementsAnnotatedWithTest.
  */
--- a/test/langtools/tools/javac/processing/environment/round/Part1.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/round/Part1.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,6 +21,8 @@
  * questions.
  */
 
+import annot.AnnotatedElementInfo;
+
 /**
  * Class to hold annotations for TestElementsAnnotatedWith.
  */
--- a/test/langtools/tools/javac/processing/environment/round/SurfaceAnnotations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/round/SurfaceAnnotations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,6 +21,8 @@
  * questions.
  */
 
+import annot.AnnotatedElementInfo;
+
 /**
  * Class to hold annotations for TestElementsAnnotatedWith.
  */
--- a/test/langtools/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,13 +23,14 @@
 
 /*
  * @test
- * @bug 6397298 6400986 6425592 6449798 6453386 6508401 6498938 6911854 8030049 8038080 8032230
- * @summary Tests that getElementsAnnotatedWith works properly.
+ * @bug 6397298 6400986 6425592 6449798 6453386 6508401 6498938 6911854 8030049 8038080 8032230 8190886
+ * @summary Tests that getElementsAnnotatedWith[Any] methods work properly.
  * @author  Joseph D. Darcy
  * @library /tools/javac/lib
  * @modules java.compiler
  *          jdk.compiler
  * @build   JavacTestingAbstractProcessor
+ * @compile annot/AnnotatedElementInfo.java annot/MarkerAnnot.java
  * @compile TestElementsAnnotatedWith.java
  * @compile InheritedAnnotation.java
  * @compile TpAnno.java
@@ -41,11 +42,17 @@
  * @compile -processor TestElementsAnnotatedWith -proc:only Foo.java
  * @compile -processor TestElementsAnnotatedWith -proc:only TypeParameterAnnotations.java
  * @compile -processor TestElementsAnnotatedWith -proc:only ParameterAnnotations.java
+ * @compile -processor TestElementsAnnotatedWith -proc:only pkg/package-info.java
+ * @compile -processor TestElementsAnnotatedWith -proc:only mod/quux/package-info.java
+ * @compile -processor TestElementsAnnotatedWith -proc:only mod/quux/Quux.java
+ * @compile  mod/quux/Quux.java mod/quux/package-info.java
+ * @compile -processor TestElementsAnnotatedWith -proc:only -AsingleModuleMode=true mod/module-info.java
  * @compile/fail/ref=ErroneousAnnotations.out -processor TestElementsAnnotatedWith -proc:only -XDrawDiagnostics ErroneousAnnotations.java
  * @compile Foo.java
  * @compile/process -processor TestElementsAnnotatedWith -proc:only Foo
  */
 
+import annot.AnnotatedElementInfo;
 import java.lang.annotation.Annotation;
 import java.util.Collections;
 import java.util.Set;
@@ -148,8 +155,6 @@
      * getElementsAnnotatedWith(X) UNION getElementsAnnotatedWith(Y).
      */
     void checkSetOfAnnotatedElements(RoundEnvironment re) {
-        TypeElement annotatedElemInfoElem =  elements.getTypeElement("AnnotatedElementInfo");
-
         // For the "Any" methods, search for both the expected
         // annotation and AnnotatedElementInfo and verify the return
         // set is the union of searching for AnnotatedElementInfo and
@@ -162,28 +167,45 @@
         Set<? extends Element> resultsBaseAny      = Collections.emptySet();
         Set<? extends Element> resultsBaseAnyMulti = Collections.emptySet();
 
+
+        boolean singleModuleMode = processingEnv.getOptions().get("singleModuleMode") != null;
+
+        TypeElement annotatedElemInfoElem = null;
+
         if (!re.processingOver()) {
             testNonAnnotations(re);
 
             // Verify AnnotatedElementInfo is present on the first
             // specified type.
 
-            TypeElement firstType = typesIn(re.getRootElements()).iterator().next();
+            Element firstElement = re.getRootElements().iterator().next();
 
             AnnotatedElementInfo annotatedElemInfo =
-                firstType.getAnnotation(AnnotatedElementInfo.class);
+                firstElement.getAnnotation(AnnotatedElementInfo.class);
+
+            ModuleElement moduleContext;
+            if (singleModuleMode) {
+                // Should also be the case that firstElement.getKind() == ElementKind.MODULE
+                moduleContext = (ModuleElement)firstElement;
+            } else {
+                moduleContext = elements.getModuleElement(""); // unnamed module
+            }
+
+            annotatedElemInfoElem =
+                elements.getTypeElement(moduleContext, "annot.AnnotatedElementInfo");
 
             boolean failed = false;
 
             Objects.requireNonNull(annotatedElemInfo,
-                                   "Missing AnnotatedElementInfo annotation on " + firstType);
+                                   "Missing AnnotatedElementInfo annotation on " + firstElement);
 
             // Verify that the annotation information is as expected.
             Set<String> expectedNames =
                 new HashSet<>(Arrays.asList(annotatedElemInfo.names()));
 
             String annotationName = annotatedElemInfo.annotationName();
-            TypeElement annotationTypeElem = elements.getTypeElement(annotationName);
+            TypeElement annotationTypeElem = elements.getTypeElement(moduleContext,
+                                                                     annotationName);
 
             resultsMeta         = re.getElementsAnnotatedWith(annotationTypeElem);
             resultsMetaAny      = re.getElementsAnnotatedWithAny(annotationTypeElem);
@@ -229,7 +251,7 @@
                 System.err.printf("Inconsistent Base with vs withAny results");
             }
 
-            if (!resultsMeta.equals(resultsBase)) {
+            if (!singleModuleMode && !resultsMeta.equals(resultsBase)) {
                 failed = true;
                 System.err.println("Base and Meta sets unequal;\n meta: " + resultsMeta +
                                    "\nbase: " + resultsBase);
@@ -241,7 +263,7 @@
                                    "\nbase: " + resultsBase);
             }
 
-            if (!resultsBaseAnyMulti.equals(resultsMetaAnyMulti)) {
+            if (!singleModuleMode && !resultsBaseAnyMulti.equals(resultsMetaAnyMulti)) {
                 failed = true;
                 System.err.println("BaseMulti and MetaMulti sets unequal;\n meta: " + resultsMeta +
                                    "\nbase: " + resultsBase);
@@ -255,10 +277,16 @@
             // If processing is over without an error, the specified
             // elements should be empty so an empty set should be
             // returned.
-            throwOnNonEmpty(re.getElementsAnnotatedWith(annotatedElemInfoElem), "resultsMeta");
-            throwOnNonEmpty(re.getElementsAnnotatedWithAny(annotatedElemInfoElem), "resultsMetaAny");
+
             throwOnNonEmpty(re.getElementsAnnotatedWith(AnnotatedElementInfo.class),    "resultsBase");
             throwOnNonEmpty(re.getElementsAnnotatedWithAny(Set.of(AnnotatedElementInfo.class)), "resultsBaseAny");
+
+            if (!singleModuleMode) {
+                // Could also use two-argument form of getTypeElement with an unnamed module argument.
+                annotatedElemInfoElem = elements.getTypeElement("annot.AnnotatedElementInfo");
+                throwOnNonEmpty(re.getElementsAnnotatedWith(annotatedElemInfoElem), "resultsMeta");
+                throwOnNonEmpty(re.getElementsAnnotatedWithAny(annotatedElemInfoElem), "resultsMetaAny");
+            }
         }
     }
 
--- a/test/langtools/tools/javac/processing/environment/round/TypeParameterAnnotations.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/round/TypeParameterAnnotations.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,6 +21,8 @@
  * questions.
  */
 
+import annot.AnnotatedElementInfo;
+
 /**
  * Class to hold annotations for TestElementsAnnotatedWith.
  */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/environment/round/annot/AnnotatedElementInfo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package annot;
+
+import java.lang.annotation.*;
+import static java.lang.annotation.ElementType.*;
+import static java.lang.annotation.RetentionPolicy.*;
+
+/**
+ * Hold information about the set of elements expected to be annotated
+ * with a given annotation.
+ */
+@Retention(RUNTIME)
+@Target({TYPE, MODULE, PACKAGE})
+public @interface AnnotatedElementInfo {
+    String annotationName();
+    int expectedSize();
+    String[] names();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/environment/round/annot/MarkerAnnot.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 annot;
+
+import java.lang.annotation.*;
+import static java.lang.annotation.RetentionPolicy.*;
+import static java.lang.annotation.ElementType.*;
+
+/**
+ * A marker annotation.
+ */
+@Retention(RUNTIME)
+@Target({TYPE, MODULE, PACKAGE})
+public @interface MarkerAnnot {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/environment/round/mod/module-info.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * A module
+ */
+@annot.AnnotatedElementInfo(annotationName="annot.MarkerAnnot",
+                            expectedSize=1,
+                            names={"mod"})
+@annot.MarkerAnnot
+module mod {
+    exports quux;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/environment/round/mod/quux/Quux.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package quux;
+
+@annot.AnnotatedElementInfo(annotationName="annot.MarkerAnnot", expectedSize=1, names={"Quux"})
+@SuppressWarnings("")
+@annot.MarkerAnnot
+public class Quux {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/environment/round/mod/quux/package-info.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ */
+
+/**
+ * A package
+ */
+@annot.AnnotatedElementInfo(annotationName="annot.MarkerAnnot",
+                            expectedSize=1,
+                            names={"quux"})
+@annot.MarkerAnnot
+package quux;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/environment/round/pkg/Foo.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg;
+
+@SuppressWarnings("")
+@annot.MarkerAnnot
+public class Foo {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/environment/round/pkg/package-info.java	Fri Jul 27 12:16:01 2018 +0100
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ */
+
+/**
+ * A package
+ */
+@annot.AnnotatedElementInfo(annotationName="annot.MarkerAnnot",
+                            expectedSize=1,
+                            names={"pkg"})
+@annot.MarkerAnnot
+package pkg;
--- a/test/langtools/tools/jdeps/DotFileTest.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/langtools/tools/jdeps/DotFileTest.java	Fri Jul 27 12:16:01 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,8 @@
  * @summary Basic tests for jdeps -dotoutput option
  * @modules java.management
  *          jdk.jdeps/com.sun.tools.jdeps
- * @build Test p.Foo p.Bar
+ * @library /tools/lib
+ * @build toolbox.ToolBox Test p.Foo p.Bar
  * @run main DotFileTest
  */
 
@@ -43,6 +44,8 @@
 import java.util.regex.*;
 import java.util.stream.Collectors;
 
+import toolbox.ToolBox;
+
 public class DotFileTest {
     public static void main(String... args) throws Exception {
         int errors = 0;
@@ -51,9 +54,11 @@
             throw new Exception(errors + " errors found");
     }
 
+    final ToolBox toolBox;
     final Path dir;
     final Path dotoutput;
     DotFileTest() {
+        this.toolBox = new ToolBox();
         this.dir = Paths.get(System.getProperty("test.classes", "."));
         this.dotoutput = dir.resolve("dots");
     }
@@ -169,12 +174,10 @@
 
     Map<String,String> jdeps(List<String> args, Path dotfile) throws IOException {
         if (Files.exists(dotoutput)) {
-            try (DirectoryStream<Path> stream = Files.newDirectoryStream(dotoutput)) {
-                for (Path p : stream) {
-                    Files.delete(p);
-                }
-            }
-            Files.delete(dotoutput);
+            // delete contents of directory, then directory,
+            // waiting for confirmation on Windows
+            toolBox.cleanDirectory(dotoutput);
+            toolBox.deleteFiles(dotoutput);
         }
         // invoke jdeps
         StringWriter sw = new StringWriter();
--- a/test/lib/sun/hotspot/WhiteBox.java	Tue Jul 24 10:07:26 2018 +0100
+++ b/test/lib/sun/hotspot/WhiteBox.java	Fri Jul 27 12:16:01 2018 +0100
@@ -515,6 +515,7 @@
   public native boolean isSharedClass(Class<?> c);
   public native boolean areSharedStringsIgnored();
   public native boolean isCDSIncludedInVmBuild();
+  public native boolean isJFRIncludedInVmBuild();
   public native boolean isJavaHeapArchiveSupported();
   public native Object  getResolvedReferences(Class<?> c);
   public native boolean areOpenArchiveHeapObjectsMapped();