changeset 12060:1abd45df5480 jdk9-b67

Merge
author lana
date Thu, 28 May 2015 16:51:18 -0700
parents 4bdba5e53c9a (current diff) 956a3fc4e307 (diff)
children f398670f3da7 74f5a49a7c74 474db9ef5ee7
files make/gendata/Gendata-jdk.dev.gmk src/bsd/doc/man/ja/native2ascii.1 src/bsd/doc/man/native2ascii.1 src/java.base/share/classes/com/sun/java/util/jar/pack/package.html src/java.base/share/classes/com/sun/net/ssl/package.html src/java.base/share/classes/java/io/package.html src/java.base/share/classes/java/lang/ref/package.html src/java.base/share/classes/java/nio/channels/spi/package.html src/java.base/share/classes/java/nio/charset/package.html src/java.base/share/classes/java/nio/charset/spi/package.html src/java.base/share/classes/java/nio/package.html src/java.base/share/classes/java/text/package.html src/java.base/share/classes/java/text/spi/package.html src/java.base/share/classes/java/util/jar/package.html src/java.base/share/classes/java/util/package.html src/java.base/share/classes/java/util/regex/package.html src/java.base/share/classes/java/util/spi/package.html src/java.base/share/classes/javax/crypto/interfaces/package.html src/java.base/share/classes/javax/crypto/package.html src/java.base/share/classes/javax/crypto/spec/package.html src/java.base/share/classes/javax/net/package.html src/java.base/share/classes/javax/net/ssl/package.html src/java.base/share/classes/sun/reflect/package.html src/jdk.dev/share/classes/sun/tools/native2ascii/A2NFilter.java src/jdk.dev/share/classes/sun/tools/native2ascii/Main.java src/jdk.dev/share/classes/sun/tools/native2ascii/N2AFilter.java src/jdk.dev/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii.java test/sun/nio/cs/Test4200310.sh test/sun/tools/jhat/hprof.bin test/sun/tools/jhat/jmap.bin test/sun/tools/jhat/minimal.bin test/sun/tools/native2ascii/A2N_4630463 test/sun/tools/native2ascii/A2N_4630463.expected test/sun/tools/native2ascii/A2N_4630971 test/sun/tools/native2ascii/A2N_4701617 test/sun/tools/native2ascii/A2N_4701617.expected test/sun/tools/native2ascii/A2N_6247817 test/sun/tools/native2ascii/N2A_4636448 test/sun/tools/native2ascii/N2A_4636448.expected test/sun/tools/native2ascii/Native2AsciiTests.sh test/sun/tools/native2ascii/NativeErrors.java test/sun/tools/native2ascii/Permission.java test/sun/tools/native2ascii/resources/ImmutableResourceTest.java test/sun/tools/native2ascii/test1 test/sun/tools/native2ascii/test3
diffstat 665 files changed, 4793 insertions(+), 3501 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/charsetmapping/JIS_X_0208_MS932.c2b	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,7 @@
+0x2124    0x00b8
+0x2126    0x00b7
+0x2131    0x00af
+0x2263    0x00ab
+0x2264    0x00bb
+0x2574    0x3094
+0x264c    0x00b5
--- a/make/data/charsetmapping/JIS_X_0208_MS932.map	Thu May 28 16:13:52 2015 -0700
+++ b/make/data/charsetmapping/JIS_X_0208_MS932.map	Thu May 28 16:51:18 2015 -0700
@@ -1,7 +1,7 @@
 #
 #  mapping is based on JIS_X_0208_MS932_De/Encoder
 #
-#  moved following entries to .nr
+#  copied following entries to .nr
 #
 #   0x224c    0xffe2
 #   0x225d    0x22a5
@@ -14,7 +14,7 @@
 #   0x2d7b    0x2229
 #   0x2d7c    0x222a
 #
-#  and following to c2b
+#  and moved following to c2b
 #
 #   0x2124    0x00b8
 #   0x2126    0x00b7
@@ -144,13 +144,13 @@
 0x2241    0x2229
 0x224a    0x2227
 0x224b    0x2228
-#0x224c    0xffe2
+0x224c    0xffe2
 0x224d    0x21d2
 0x224e    0x21d4
 0x224f    0x2200
 0x2250    0x2203
 0x225c    0x2220
-#0x225d    0x22a5
+0x225d    0x22a5
 0x225e    0x2312
 0x225f    0x2202
 0x2260    0x2207
@@ -158,11 +158,11 @@
 0x2262    0x2252
 0x2263    0x226a
 0x2264    0x226b
-#0x2265    0x221a
+0x2265    0x221a
 0x2266    0x223d
 0x2267    0x221d
 0x2268    0x2235
-#0x2269    0x222b
+0x2269    0x222b
 0x226a    0x222c
 0x2272    0x212b
 0x2273    0x2030
@@ -620,19 +620,19 @@
 0x2d6d    0x337e
 0x2d6e    0x337d
 0x2d6f    0x337c
-#0x2d70    0x2252
-#0x2d71    0x2261
+0x2d70    0x2252
+0x2d71    0x2261
 0x2d72    0x222b
 0x2d73    0x222e
 0x2d74    0x2211
 0x2d75    0x221a
 0x2d76    0x22a5
-#0x2d77    0x2220
+0x2d77    0x2220
 0x2d78    0x221f
 0x2d79    0x22bf
-#0x2d7a    0x2235
-#0x2d7b    0x2229
-#0x2d7c    0x222a
+0x2d7a    0x2235
+0x2d7b    0x2229
+0x2d7c    0x222a
 0x3021    0x4e9c
 0x3022    0x5516
 0x3023    0x5a03
--- a/make/data/charsetmapping/JIS_X_0212_Solaris.map	Thu May 28 16:13:52 2015 -0700
+++ b/make/data/charsetmapping/JIS_X_0212_Solaris.map	Thu May 28 16:51:18 2015 -0700
@@ -23,7 +23,7 @@
 #    as the round-trip entries.
 #
 #    b2c and c2b all have entry "0x2271 <-> 0x2116", so the
-#    "0x742c -> 0x2116" entry is moved to the .nr table.
+#    "0x742c -> 0x2116" entry is copied to the .nr table.
 #
 #    mapping (c2b) generated from JIS_X_0212_Solaris_Encoder has
 #    two "dup" entries
@@ -6126,7 +6126,7 @@
 0x7429    0xff07
 0x742a    0xff02
 0x742b    0x3231
-#0x742c    0x2116
+0x742c    0x2116
 0x742d    0x2121
 0x742e    0x70bb
 0x742f    0x4efc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/charsetmapping/stdcs-aix	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,6 @@
+#
+#   generate these charsets into sun.nio.cs
+#
+EUC_CN
+EUC_KR
+GBK
--- a/make/gendata/Gendata-jdk.dev.gmk	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-#
-# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-include GendataCommon.gmk
-
-$(eval $(call IncludeCustomExtension, jdk, gendata/Gendata-jdk.dev.gmk))
-
-JDEPS_MODULES_XML := $(JDK_OUTPUTDIR)/modules/jdk.dev/com/sun/tools/jdeps/resources/jdeps-modules.xml
-MODULES_XML += $(TOPDIR)/modules.xml
-
-#
-# Generate modules.xml for jdeps to use
-# It augments $(TOPDIR)/modules.xml to include module membership
-#
-$(JDEPS_MODULES_XML): $(BUILD_TOOLS_JDK) $(MODULES_XML)
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(TOOL_GENMODULESXML) -o $@ -mp $(JDK_OUTPUTDIR)/modules $(MODULES_XML)
-
-TARGETS += $(JDEPS_MODULES_XML)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/gendata/Gendata-jdk.jdeps.gmk	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+include GendataCommon.gmk
+
+$(eval $(call IncludeCustomExtension, jdk, gendata/Gendata-jdk.jdeps.gmk))
+
+JDEPS_MODULES_XML := $(JDK_OUTPUTDIR)/modules/jdk.jdeps/com/sun/tools/jdeps/resources/jdeps-modules.xml
+MODULES_XML += $(TOPDIR)/modules.xml
+
+#
+# Generate modules.xml for jdeps to use
+# It augments $(TOPDIR)/modules.xml to include module membership
+#
+$(JDEPS_MODULES_XML): $(BUILD_TOOLS_JDK) $(MODULES_XML)
+	$(MKDIR) -p $(@D)
+	$(RM) $@
+	$(TOOL_GENMODULESXML) -o $@ -mp $(JDK_OUTPUTDIR)/modules $(MODULES_XML)
+
+TARGETS += $(JDEPS_MODULES_XML)
--- a/make/launcher/Launcher-jdk.compiler.gmk	Thu May 28 16:13:52 2015 -0700
+++ b/make/launcher/Launcher-jdk.compiler.gmk	Thu May 28 16:51:18 2015 -0700
@@ -35,11 +35,6 @@
     -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javah.Main"$(COMMA) }'))
 
-$(eval $(call SetupLauncher,javap, \
-    -DEXPAND_CLASSPATH_WILDCARDS \
-    -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
-    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javap.Main"$(COMMA) }'))
-
 $(eval $(call SetupLauncher,serialver, \
     -DEXPAND_CLASSPATH_WILDCARDS \
     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.serialver.SerialVer"$(COMMA) }'))
--- a/make/launcher/Launcher-jdk.dev.gmk	Thu May 28 16:13:52 2015 -0700
+++ b/make/launcher/Launcher-jdk.dev.gmk	Thu May 28 16:51:18 2015 -0700
@@ -25,14 +25,5 @@
 
 include LauncherCommon.gmk
 
-$(eval $(call SetupLauncher,jdeps, \
-    -DEXPAND_CLASSPATH_WILDCARDS \
-    -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
-    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.jdeps.Main"$(COMMA) }'))
-
 $(eval $(call SetupLauncher,jimage,\
     -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "jdk.tools.jimage.Main"$(COMMA) }'))
-
-$(eval $(call SetupLauncher,native2ascii, \
-    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.native2ascii.Main"$(COMMA) }'))
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/launcher/Launcher-jdk.jdeps.gmk	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,36 @@
+#
+# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+include LauncherCommon.gmk
+
+$(eval $(call SetupLauncher,javap, \
+    -DEXPAND_CLASSPATH_WILDCARDS \
+    -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javap.Main"$(COMMA) }'))
+
+$(eval $(call SetupLauncher,jdeps, \
+    -DEXPAND_CLASSPATH_WILDCARDS \
+    -DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
+    -DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.jdeps.Main"$(COMMA) }'))
--- a/make/lib/CoreLibraries.gmk	Thu May 28 16:13:52 2015 -0700
+++ b/make/lib/CoreLibraries.gmk	Thu May 28 16:51:18 2015 -0700
@@ -146,11 +146,6 @@
     OPTIMIZATION := HIGH, \
     CFLAGS := $(CFLAGS_JDKLIB) \
         $(LIBJAVA_CFLAGS), \
-    DISABLED_WARNINGS_gcc := type-limits format-nonliteral, \
-    DISABLED_WARNINGS_clang := int-conversion, \
-    DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE, \
-    DISABLED_WARNINGS_microsoft := 4022 4267 4996, \
-    WARNINGS_AS_ERRORS_solstudio := false, \
     MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjava/mapfile-vers, \
     LDFLAGS := $(LDFLAGS_JDKLIB) \
         $(call SET_SHARED_LIBRARY_ORIGIN), \
--- a/make/lib/Lib-jdk.hprof.agent.gmk	Thu May 28 16:13:52 2015 -0700
+++ b/make/lib/Lib-jdk.hprof.agent.gmk	Thu May 28 16:51:18 2015 -0700
@@ -49,7 +49,6 @@
     CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) \
         $(BUILD_LIBHPROF_CFLAGS), \
     CFLAGS_debug := -DHPROF_LOGGING, \
-    CFLAGS_windows := -D_WINSOCK_DEPRECATED_NO_WARNINGS, \
     MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libhprof/mapfile-vers, \
     LDFLAGS := $(LDFLAGS_JDKLIB) \
         $(call SET_SHARED_LIBRARY_ORIGIN), \
--- a/src/bsd/doc/man/ja/native2ascii.1	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-." Copyright (c) 1997, 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.
-."
-." 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.
-."
-.TH native2ascii 1 "07 May 2011"
-
-.LP
--- a/src/bsd/doc/man/native2ascii.1	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-'\" t
-.\"  Copyright (c) 1997, 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.
-.\"
-.\" 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.
-.\"
-.\"     Arch: generic
-.\"     Software: JDK 8
-.\"     Date: 21 November 2013
-.\"     SectDesc: Internationalization Tools
-.\"     Title: native2ascii.1
-.\"
-.if n .pl 99999
-.TH native2ascii 1 "21 November 2013" "JDK 8" "Internationalization Tools"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-
-.SH NAME    
-native2ascii \- Creates localizable applications by converting a file with characters in any supported character encoding to one with ASCII and/or Unicode escapes or vice versa\&.
-.SH SYNOPSIS    
-.sp     
-.nf     
-
-\fBnative2ascii\fR [ \fIinputfile\fR ] [ \fIoutputfile\fR ]
-.fi     
-.sp     
-.TP     
-\fIinputfile\fR
-The encoded file to be converted to ASCII\&.
-.TP     
-\fIoutputfile\fR
-The converted ASCII file\&.
-.SH DESCRIPTION    
-The \f3native2ascii\fR command converts encoded files supported by the Java Runtime Environment (JRE) to files encoded in ASCII, using Unicode escapes (\f3\eu\fR\fIxxxx\fR) notation for all characters that are not part of the ASCII character set\&. This process is required for properties files that contain characters not in ISO-8859-1 character sets\&. The tool can also perform the reverse conversion\&.
-.PP
-If the \f3outputfile\fR value is omitted, then standard output is used for output\&. If, in addition, the \f3inputfile\fR value is omitted, then standard input is used for input\&.
-.SH OPTIONS    
-.TP
--reverse
-.br
-Perform the reverse operation: Converts a file encoded in ISO-8859-1 with Unicode escapes to a file in any character encoding supported by the JRE\&.
-.TP
--encoding \fIencoding_name\fR
-.br
-Specifies the name of the character encoding to be used by the conversion procedure\&. If this option is not present, then the default character encoding (as determined by the \f3java\&.nio\&.charset\&.Charset\&.defaultCharset\fR method) is used\&. The \f3encoding_name\fR string must be the name of a character encoding that is supported by the JRE\&. See Supported Encodings at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/intl/encoding\&.doc\&.html
-.TP
--J\fIoption\fR
-.br
-Passes \f3option\fR to the Java Virtual Machine (JVM), where option is one of the options described on the reference page for the Java application launcher\&. For example, \f3-J-Xms48m\fR sets the startup memory to 48 MB\&. See java(1)\&.
-.RE
-.br
-'pl 8.5i
-'bp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/com/sun/java/util/jar/pack/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * This package provides methods to read files from a JAR file and to
+ * transform them to a more compact transfer format called Pack200.
+ * It also provides methods to receive the transmitted data and expand
+ * it into a JAR file equivalent to the original JAR file.
+ *
+ * <p>
+ * The {@code pack} methods may be used by application developers who
+ * wish to deploy large JARs on the web.  The {@code unpack} methods
+ * may be used by deployment applications such as Java Web Start and
+ * Java Plugin.
+ *
+ * <p>
+ * In typical use, the packed output should be further compressed
+ * using a suitable tool such as gzip or
+ * {@code java.util.zip.GZIPOutputStream}.  The resulting file (with
+ * a suffix ".pack.gz") should be hosted on a HTTP/1.1 compliant
+ * server, which will be capable of handling "Accept-Encoding", as
+ * specified by the HTTP 1.1 RFC2616 specification.
+ *
+ * <p>
+ * <b>NOTE:</b> It is recommended that the original ".jar" file be
+ * hosted in addition to the ".pack.gz" file, so that older client
+ * implementations will continue to work reliably.  (On-demand
+ * compression by the server is not recommended.)
+ *
+ * <p>
+ * When a client application requests a ".jar" file (call it
+ * "Large.jar"), the client will transmit the headers
+ * "Content-Type=application/x-java-archive" as well as
+ * "Accept-Encoding=pack200-gzip".  This indicates to the server that
+ * the client application desires an version of the file encoded with
+ * Pack200 and further compressed with gzip.
+ *
+ * <p>
+ * The server implementation will typically check for the existence of
+ * "Large.pack.gz".  If that file is available, the server will
+ * transmit it with the headers "Content-Encoding=pack200-gzip" and
+ * "Content-Type=application/x-java-archive".
+ *
+ * <p>
+ * If the ".pack.gz" file, is not available, then the server will
+ * transmit the original ".jar" with "Content-Encoding=null" and
+ * "Content-Type=application/x-java-archive".
+ *
+ * <p>
+ * A MIME type of "application/x-java-pack200" may be specified by the
+ * client application to indicate a ".pack" file is required.
+ * However, this has limited capability, and is not recommended.
+ *
+ * <h2> Package Specification</h2>
+ * Network Transfer Format Specification :<a href="http://jcp.org/en/jsr/detail?id=200">
+ * http://jcp.org/en/jsr/detail?id=200</a>
+ *
+ * <h2> Related Documentation</h2>
+ * For overviews, tutorials, examples, guides, and tool documentation, please
+ * see:
+ * <ul>
+ *
+ * <li>
+ * Jar File Specification :<a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html">
+ * http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html</a></li>
+ *
+ * <li>
+ * Class File Specification: Chapter 4 of
+ * <em>The Java&trade; Virtual Machine Specification</em>
+ *
+ * <li>
+ * Hypertext Transfer Protocol -- HTTP/1.1 : <a href="http://www.ietf.org/rfc/rfc2616.txt">
+ * http://www.ietf.org/rfc/rfc2616.txt
+ * </ul>
+ *
+ * <li>
+ * @since 1.5</li>
+ */
+package com.sun.java.util.jar.pack;
--- a/src/java.base/share/classes/com/sun/java/util/jar/pack/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<!--
- 
-Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-</head>
-<body bgcolor="white">
-<p>
-This package provides methods to read files from a JAR file and
-to transform them to a more compact transfer format called Pack200.
-It also provides methods to receive the transmitted data and expand
-it into a JAR file equivalent to the original JAR file.
-
-<p> 
-The <tt>pack</tt> methods may be used by application developers
-who wish to deploy large JARs on the web.  The <tt>unpack</tt> methods may be used 
-by deployment applications such as Java Web Start and Java Plugin.
-
-<p>
-In typical use, the packed output should be further compressed using
-a suitable tool such as gzip or <tt>java.util.zip.GZIPOutputStream</tt>.
-The resulting file (with a suffix ".pack.gz") should be hosted on a HTTP/1.1
-compliant server, which will be capable of handling "Accept-Encoding",
-as specified by the HTTP 1.1 RFC2616 specification.
-
-<p>
-<b>NOTE:</b> It is recommended that the original ".jar" file be hosted
-in addition to the ".pack.gz" file, so that older client implementations
-will continue to work reliably.
-(On-demand compression by the server is not recommended.)
-
-<p>
-When a client application requests a ".jar" file (call it "Large.jar"),
-the client will transmit the  headers
-"Content-Type=application/x-java-archive" as well as "Accept-Encoding=pack200-gzip".
-This indicates to the server that the client application desires an version
-of the file encoded with Pack200 and further compressed with gzip.
-
-<p>
-The server implementation will typically check for the existence of "Large.pack.gz".
-If that file is available, the server will transmit it with the headers
-"Content-Encoding=pack200-gzip" and "Content-Type=application/x-java-archive". 
-
-<p>
-If the ".pack.gz" file, is not available, then the server will transmit
-the original ".jar"
-with "Content-Encoding=null" and "Content-Type=application/x-java-archive".
-
-<p>
-A MIME type of "application/x-java-pack200" may be specified by the
-client application to indicate a ".pack" file is required.
-However, this has limited capability, and is not recommended.
-
-<h2> Package Specification</h2>
-Network Transfer Format Specification :<a href="http://jcp.org/en/jsr/detail?id=200">
-http://jcp.org/en/jsr/detail?id=200</a>
-
-<h2> Related Documentation</h2>
-For overviews, tutorials, examples, guides, and tool documentation, please
-see:
-<ul>
-
-<li>
-Jar File Specification :<a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html">
-http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html</a></li>
-
-<li>
-Class File Specification: Chapter 4 of
-<em>The Java&trade; Virtual Machine Specification</em>
-
-<li>
-Hypertext Transfer Protocol -- HTTP/1.1 : <a href="http://www.ietf.org/rfc/rfc2616.txt">
-http://www.ietf.org/rfc/rfc2616.txt
-</ul>
-
-<li>
-@since 1.5</li>
-
-<br><!-- Put @see and @since tags down here. -->
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/com/sun/net/ssl/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Provides classes related to creating and configuring secure socket
+ * factories.  These classes are used with the Sun reference
+ * implementation of the Java Secure Socket Extension (JSSE).
+ */
+package com.sun.net.ssl;
--- a/src/java.base/share/classes/com/sun/net/ssl/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-
-
-Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
-
--->
-
-</head>
-<body bgcolor="white">
-
-Provides classes related to creating and configuring secure socket factories.
-These classes are used with the Sun reference implementation of the Java
-Secure Socket Extension (JSSE).
-<!--
-<h2>Package Specification</h2>
-
-##### FILL IN ANY SPECS NEEDED BY JAVA COMPATIBILITY KIT #####
-<ul>
-  <li><a href="">##### REFER TO ANY FRAMEMAKER SPECIFICATION HERE #####</a>
-</ul>
-
-<h2>Related Documentation</h2>
-
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-  <li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
-</ul>
-
--->
-
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/io/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Provides for system input and output through data streams,
+ * serialization and the file system.
+ *
+ * Unless otherwise noted, passing a null argument to a constructor or
+ * method in any class or interface in this package will cause a
+ * {@code NullPointerException} to be thrown.
+ *
+ * <h2>Package Specification</h2>
+ * <ul>
+ *   <li><a href="../../../platform/serialization/spec/serialTOC.html"> Java Object Serialization Specification </a>
+ * </ul>
+ *
+ * <h2>Related Documentation</h2>
+ *
+ * For overviews, tutorials, examples, guides, and tool documentation,
+ * please see:
+ * <ul>
+ *   <li><a href="../../../technotes/guides/serialization">Serialization Enhancements</a>
+ * </ul>
+ *
+ * @since 1.0
+ */
+package java.io;
--- a/src/java.base/share/classes/java/io/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-<!--
- Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
- 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.
--->
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<body bgcolor="white">
-
-Provides for system input and output through data streams,
-serialization and the file system.
-
-Unless otherwise noted, passing a null argument to a constructor
-or method in any class or interface in this package will cause a
-<tt>NullPointerException</tt> to be thrown.
-
-<h2>Package Specification</h2>
-<ul>
-  <li><a href="../../../platform/serialization/spec/serialTOC.html"> Java Object Serialization Specification </a>
-</ul>
-
-<h2>Related Documentation</h2>
-
-For overviews, tutorials, examples, guides, and tool documentation,
-please see:
-<ul>
-  <li><a href="../../../technotes/guides/serialization">Serialization Enhancements</a>
-</ul>
-
-@since 1.0
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/lang/ref/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Provides reference-object classes, which support a limited degree
+ * of interaction with the garbage collector.  A program may use a
+ * reference object to maintain a reference to some other object in
+ * such a way that the latter object may still be reclaimed by the
+ * collector.  A program may also arrange to be notified some time
+ * after the collector has determined that the reachability of a given
+ * object has changed.
+ *
+ *<h2>Package Specification</h2>
+ *
+ * A <em>reference object</em> encapsulates a reference to some other
+ * object so that the reference itself may be examined and manipulated
+ * like any other object.  Three types of reference objects are
+ * provided, each weaker than the last: <em>soft</em>, <em>weak</em>,
+ * and <em>phantom</em>.  Each type corresponds to a different level
+ * of reachability, as defined below.  Soft references are for
+ * implementing memory-sensitive caches, weak references are for
+ * implementing canonicalizing mappings that do not prevent their keys
+ * (or values) from being reclaimed, and phantom references are for
+ * scheduling pre-mortem cleanup actions in a more flexible way than
+ * is possible with the Java finalization mechanism.
+ *
+ * <p> Each reference-object type is implemented by a subclass of the
+ * abstract base {@link java.lang.ref.Reference} class.
+ * An instance of one of these subclasses encapsulates a single
+ * reference to a particular object, called the <em>referent</em>.
+ * Every reference object provides methods for getting and clearing
+ * the reference.  Aside from the clearing operation reference objects
+ * are otherwise immutable, so no {@code set} operation is
+ * provided.  A program may further subclass these subclasses, adding
+ * whatever fields and methods are required for its purposes, or it
+ * may use these subclasses without change.
+ *
+ * <h3>Notification</h3>
+ *
+ * A program may request to be notified of changes in an object's
+ * reachability by <em>registering</em> an appropriate reference
+ * object with a <em>reference queue</em> at the time the reference
+ * object is created.  Some time after the garbage collector
+ * determines that the reachability of the referent has changed to the
+ * value corresponding to the type of the reference, it will add the
+ * reference to the associated queue.  At this point, the reference is
+ * considered to be <em>enqueued</em>.  The program may remove
+ * references from a queue either by polling or by blocking until a
+ * reference becomes available.  Reference queues are implemented by
+ * the {@link java.lang.ref.ReferenceQueue} class.
+ *
+ * <p> The relationship between a registered reference object and its
+ * queue is one-sided.  That is, a queue does not keep track of the
+ * references that are registered with it.  If a registered reference
+ * becomes unreachable itself, then it will never be enqueued.  It is
+ * the responsibility of the program using reference objects to ensure
+ * that the objects remain reachable for as long as the program is
+ * interested in their referents.
+ *
+ * <p> While some programs will choose to dedicate a thread to
+ * removing reference objects from one or more queues and processing
+ * them, this is by no means necessary.  A tactic that often works
+ * well is to examine a reference queue in the course of performing
+ * some other fairly-frequent action.  For example, a hashtable that
+ * uses weak references to implement weak keys could poll its
+ * reference queue each time the table is accessed.  This is how the
+ * {@link java.util.WeakHashMap} class works.  Because
+ * the {@link java.lang.ref.ReferenceQueue#poll
+ * ReferenceQueue.poll} method simply checks an internal data
+ * structure, this check will add little overhead to the hashtable
+ * access methods.
+ *
+ * <h3>Automatically-cleared references</h3>
+ *
+ * Soft and weak references are automatically cleared by the collector
+ * before being added to the queues with which they are registered, if
+ * any.  Therefore soft and weak references need not be registered
+ * with a queue in order to be useful, while phantom references do.
+ * An object that is reachable via phantom references will remain so
+ * until all such references are cleared or themselves become
+ * unreachable.
+ *
+ * <a name="reachability"></a>
+ * <h3>Reachability</h3>
+ *
+ * Going from strongest to weakest, the different levels of
+ * reachability reflect the life cycle of an object.  They are
+ * operationally defined as follows:
+ *
+ * <ul>
+ *
+ * <li> An object is <em>strongly reachable</em> if it can be reached
+ * by some thread without traversing any reference objects.  A
+ * newly-created object is strongly reachable by the thread that
+ * created it.
+ *
+ * <li> An object is <em>softly reachable</em> if it is not strongly
+ * reachable but can be reached by traversing a soft reference.
+ *
+ * <li> An object is <em>weakly reachable</em> if it is neither
+ * strongly nor softly reachable but can be reached by traversing a
+ * weak reference.  When the weak references to a weakly-reachable
+ * object are cleared, the object becomes eligible for finalization.
+ *
+ * <li> An object is <em>phantom reachable</em> if it is neither
+ * strongly, softly, nor weakly reachable, it has been finalized, and
+ * some phantom reference refers to it.
+ *
+ * <li> Finally, an object is <em>unreachable</em>, and therefore
+ * eligible for reclamation, when it is not reachable in any of the
+ * above ways.
+ *
+ * </ul>
+ *
+ * @author        Mark Reinhold
+ * @since         1.2
+ */
+package java.lang.ref;
--- a/src/java.base/share/classes/java/lang/ref/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-<!--
- Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
- 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.
--->
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<body bgcolor="white">
-
-
-Provides reference-object classes, which support a limited degree of
-interaction with the garbage collector.  A program may use a reference object
-to maintain a reference to some other object in such a way that the latter
-object may still be reclaimed by the collector.  A program may also arrange to
-be notified some time after the collector has determined that the reachability
-of a given object has changed.
-
-
-<h2>Package Specification</h2>
-
-A <em>reference object</em> encapsulates a reference to some other object so
-that the reference itself may be examined and manipulated like any other
-object.  Three types of reference objects are provided, each weaker than the
-last: <em>soft</em>, <em>weak</em>, and <em>phantom</em>.  Each type
-corresponds to a different level of reachability, as defined below.  Soft
-references are for implementing memory-sensitive caches, weak references are
-for implementing canonicalizing mappings that do not prevent their keys (or
-values) from being reclaimed, and phantom references are for scheduling
-pre-mortem cleanup actions in a more flexible way than is possible with the
-Java finalization mechanism.
-
-<p> Each reference-object type is implemented by a subclass of the abstract
-base <code>{@link java.lang.ref.Reference}</code> class.  An instance of one of
-these subclasses encapsulates a single reference to a particular object, called
-the <em>referent</em>.  Every reference object provides methods for getting and
-clearing the reference.  Aside from the clearing operation reference objects
-are otherwise immutable, so no <code>set</code> operation is provided.  A
-program may further subclass these subclasses, adding whatever fields and
-methods are required for its purposes, or it may use these subclasses without
-change.
-
-
-<h3>Notification</h3>
-
-A program may request to be notified of changes in an object's reachability by
-<em>registering</em> an appropriate reference object with a <em>reference
-queue</em> at the time the reference object is created.  Some time after the
-garbage collector determines that the reachability of the referent has changed
-to the value corresponding to the type of the reference, it will add the
-reference to the associated queue.  At this point, the reference is considered
-to be <em>enqueued</em>.  The program may remove references from a queue either
-by polling or by blocking until a reference becomes available.  Reference
-queues are implemented by the <code>{@link java.lang.ref.ReferenceQueue}</code>
-class.
-
-<p> The relationship between a registered reference object and its queue is
-one-sided.  That is, a queue does not keep track of the references that are
-registered with it.  If a registered reference becomes unreachable itself, then
-it will never be enqueued.  It is the responsibility of the program using
-reference objects to ensure that the objects remain reachable for as long as
-the program is interested in their referents.
-
-<p> While some programs will choose to dedicate a thread to removing reference
-objects from one or more queues and processing them, this is by no means
-necessary.  A tactic that often works well is to examine a reference queue in
-the course of performing some other fairly-frequent action.  For example, a
-hashtable that uses weak references to implement weak keys could poll its
-reference queue each time the table is accessed.  This is how the <code>{@link
-java.util.WeakHashMap}</code> class works.  Because the <code>{@link
-java.lang.ref.ReferenceQueue#poll ReferenceQueue.poll}</code> method simply
-checks an internal data structure, this check will add little overhead to the
-hashtable access methods.
-
-
-<h3>Automatically-cleared references</h3>
-
-Soft and weak references are automatically cleared by the collector before
-being added to the queues with which they are registered, if any.  Therefore
-soft and weak references need not be registered with a queue in order to be
-useful, while phantom references do.  An object that is reachable via phantom
-references will remain so until all such references are cleared or themselves
-become unreachable.
-
-
-<a name="reachability"></a>
-<h3>Reachability</h3>
-
-Going from strongest to weakest, the different levels of reachability reflect
-the life cycle of an object.  They are operationally defined as follows:
-
-<ul>
-
-<li> An object is <em>strongly reachable</em> if it can be reached by some
-thread without traversing any reference objects.  A newly-created object is
-strongly reachable by the thread that created it.
-
-<li> An object is <em>softly reachable</em> if it is not strongly reachable but
-can be reached by traversing a soft reference.
-
-<li> An object is <em>weakly reachable</em> if it is neither strongly nor
-softly reachable but can be reached by traversing a weak reference.  When the
-weak references to a weakly-reachable object are cleared, the object becomes
-eligible for finalization.
-
-<li> An object is <em>phantom reachable</em> if it is neither strongly, softly,
-nor weakly reachable, it has been finalized, and some phantom reference refers
-to it.
-
-<li> Finally, an object is <em>unreachable</em>, and therefore eligible for
-reclamation, when it is not reachable in any of the above ways.
-
-</ul>
-
-
-@author	  Mark Reinhold
-@since	  1.2
-
-<!--
-<h2>Related Documentation</h2>
-
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-  <li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
-</ul>
--->
-</body>
-</html>
--- a/src/java.base/share/classes/java/math/BigDecimal.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/java/math/BigDecimal.java	Thu May 28 16:51:18 2015 -0700
@@ -5176,7 +5176,7 @@
     }
 
     /*
-     * returns true if 128 bit number <hi0,lo0> is less then <hi1,lo1>
+     * returns true if 128 bit number <hi0,lo0> is less than <hi1,lo1>
      * hi0 & hi1 should be non-negative
      */
     private static boolean longLongCompareMagnitude(long hi0, long lo0, long hi1, long lo1) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/nio/channels/spi/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Service-provider classes for the {@link java.nio.channels}
+ * package.
+ *
+ * <p> Only developers who are defining new selector providers or
+ * asynchronous channel providers should need to make direct use of
+ * this package.  </p>
+ *
+ * <p> Unless otherwise noted, passing a {@code null} argument to a
+ * constructor or method in any class or interface in this package
+ * will cause a {@link java.lang.NullPointerException
+ * NullPointerException} to be thrown.
+ *
+ *
+ * @since 1.4
+ * @author Mark Reinhold
+ * @author JSR-51 Expert Group
+ */
+package java.nio.channels.spi;
--- a/src/java.base/share/classes/java/nio/channels/spi/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-<!--
- Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
- 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.
--->
-
-<!doctype html public "-//IETF//DTD HTML//EN">
-<html>
-<body bgcolor="white">
-
-Service-provider classes for the <tt>{@link java.nio.channels}</tt> package.
-
-<p> Only developers who are defining new selector providers or asynchronous
-channel providers should need to make direct use of this package.  </p>
-
-<p> Unless otherwise noted, passing a <tt>null</tt> argument to a constructor
-or method in any class or interface in this package will cause a {@link
-java.lang.NullPointerException NullPointerException} to be thrown.
-
-
-@since 1.4
-@author Mark Reinhold
-@author JSR-51 Expert Group
-
-</body>
-</html>
--- a/src/java.base/share/classes/java/nio/charset/Charset.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/java/nio/charset/Charset.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,7 @@
 import java.nio.charset.spi.CharsetProvider;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -336,12 +337,10 @@
     //
     private static Iterator<CharsetProvider> providers() {
         return new Iterator<>() {
-
                 ClassLoader cl = ClassLoader.getSystemClassLoader();
                 ServiceLoader<CharsetProvider> sl =
                     ServiceLoader.load(CharsetProvider.class, cl);
                 Iterator<CharsetProvider> i = sl.iterator();
-
                 CharsetProvider next = null;
 
                 private boolean getNext() {
@@ -424,32 +423,36 @@
 
     /* The extended set of charsets */
     private static class ExtendedProviderHolder {
-        static final CharsetProvider extendedProvider = extendedProvider();
+        static final CharsetProvider[] extendedProviders = extendedProviders();
         // returns ExtendedProvider, if installed
-        private static CharsetProvider extendedProvider() {
-            return AccessController.doPrivileged(
-                       new PrivilegedAction<>() {
-                           public CharsetProvider run() {
-                                try {
-                                    Class<?> epc
-                                        = Class.forName("sun.nio.cs.ext.ExtendedCharsets");
-                                    return (CharsetProvider)epc.newInstance();
-                                } catch (ClassNotFoundException x) {
-                                    // Extended charsets not available
-                                    // (charsets.jar not present)
-                                } catch (InstantiationException |
-                                         IllegalAccessException x) {
-                                  throw new Error(x);
-                                }
-                                return null;
+        private static CharsetProvider[] extendedProviders() {
+            return AccessController.doPrivileged(new PrivilegedAction<>() {
+                    public CharsetProvider[] run() {
+                        CharsetProvider[] cps = new CharsetProvider[1];
+                        int n = 0;
+                        ServiceLoader<CharsetProvider> sl =
+                            ServiceLoader.loadInstalled(CharsetProvider.class);
+                        for (CharsetProvider cp : sl) {
+                            if (n + 1 > cps.length) {
+                                cps = Arrays.copyOf(cps, cps.length << 1);
                             }
-                        });
+                            cps[n++] = cp;
+                        }
+                        return n == cps.length ? cps : Arrays.copyOf(cps, n);
+                    }});
         }
     }
 
     private static Charset lookupExtendedCharset(String charsetName) {
-        CharsetProvider ecp = ExtendedProviderHolder.extendedProvider;
-        return (ecp != null) ? ecp.charsetForName(charsetName) : null;
+        if (!sun.misc.VM.isBooted())  // see lookupViaProviders()
+            return null;
+        CharsetProvider[] ecps = ExtendedProviderHolder.extendedProviders;
+        for (CharsetProvider cp : ecps) {
+            Charset cs = cp.charsetForName(charsetName);
+            if (cs != null)
+                return cs;
+        }
+        return null;
     }
 
     private static Charset lookup(String charsetName) {
@@ -576,9 +579,10 @@
                         new TreeMap<>(
                             ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER);
                     put(standardProvider.charsets(), m);
-                    CharsetProvider ecp = ExtendedProviderHolder.extendedProvider;
-                    if (ecp != null)
+                    CharsetProvider[] ecps = ExtendedProviderHolder.extendedProviders;
+                    for (CharsetProvider ecp :ecps) {
                         put(ecp.charsets(), m);
+                    }
                     for (Iterator<CharsetProvider> i = providers(); i.hasNext();) {
                         CharsetProvider cp = i.next();
                         put(cp.charsets(), m);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/nio/charset/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Defines charsets, decoders, and encoders, for translating between
+ * bytes and Unicode characters.
+ *
+ * <blockquote><table cellspacing=1 cellpadding=0 summary="Summary of charsets, decoders, and encoders in this package">
+ *  <tr><th align="left">Class name</th><th align="left">Description</th></tr>
+ *   <tr><td valign=top>{@link java.nio.charset.Charset}</td>
+ *       <td>A named mapping between characters<br>and bytes</td></tr>
+ *   <tr><td valign=top>{@link java.nio.charset.CharsetDecoder}</td>
+ *       <td>Decodes bytes into characters</td></tr>
+ *   <tr><td valign=top>{@link java.nio.charset.CharsetEncoder}&nbsp;&nbsp;</td>
+ *       <td>Encodes characters into bytes</td></tr>
+ *   <tr><td valign=top>{@link java.nio.charset.CoderResult}&nbsp;&nbsp;</td>
+ *       <td>Describes coder results</td></tr>
+ *   <tr><td valign=top>{@link java.nio.charset.CodingErrorAction}&nbsp;&nbsp;</td>
+ *       <td>Describes actions to take when<br>coding errors are detected</td></tr>
+ *
+ * </table></blockquote>
+ *
+ * <p> A <i>charset</i> is named mapping between sequences of
+ * sixteen-bit Unicode characters and sequences of bytes, in the sense
+ * defined in <a
+ * href="http://www.ietf.org/rfc/rfc2278.txt"><i>RFC&nbsp;2278</i></a>.
+ * A <i>decoder</i> is an engine which transforms bytes in a specific
+ * charset into characters, and an <i>encoder</i> is an engine which
+ * transforms characters into bytes.  Encoders and decoders operate on
+ * byte and character buffers.  They are collectively referred to as
+ * <i>coders</i>.
+ *
+ * <p> The {@link java.nio.charset.Charset} class defines methods for
+ * creating coders for a given charset and for retrieving the various
+ * names associated with a charset.  It also defines static methods
+ * for testing whether a particular charset is supported, for locating
+ * charset instances by name, and for constructing a map that contains
+ * every charset for which support is available in the current Java
+ * virtual machine.
+ *
+ * <p> Most users will not use these classes directly; instead they
+ * will use the existing charset-related constructors and methods in
+ * the {@link java.lang.String} class, together with the existing
+ * {@link java.io.InputStreamReader} and {@link
+ * java.io.OutputStreamWriter} classes, all of whose implementations
+ * have been reworked to make use of the charset facilities defined in
+ * this package.  A small number of changes have been made to the
+ * {@link java.io.InputStreamReader} and {@link
+ * java.io.OutputStreamWriter} classes in order to allow explicit
+ * charset objects to be specified in the construction of instances of
+ * those classes.
+ *
+ * <p> Support for new charsets can be made available via the
+ * interface defined in the {@link
+ * java.nio.charset.spi.CharsetProvider} class in the <tt>{@link
+ * java.nio.charset.spi}</tt> package.
+ *
+ * <p> Unless otherwise noted, passing a <tt>null</tt> argument to a
+ * constructor or method in any class or interface in this package
+ * will cause a {@link java.lang.NullPointerException
+ * NullPointerException} to be thrown.
+ *
+ *
+ * @since 1.4
+ * @author Mark Reinhold
+ * @author JSR-51 Expert Group
+ */
+package java.nio.charset;
--- a/src/java.base/share/classes/java/nio/charset/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-<!--
- Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
- 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.
--->
-
-<!doctype html public "-//IETF//DTD HTML//EN">
-<html>
-<body bgcolor="white">
-
-
-Defines charsets, decoders, and encoders, for translating between bytes and
-Unicode characters.
-
-<blockquote><table cellspacing=1 cellpadding=0 summary="Summary of charsets, decoders, and encoders in this package">
- <tr><th><p align="left">Class name</p></th><th><p align="left">Description</p></th></tr>
-  <tr><td valign=top><tt>{@link java.nio.charset.Charset}</tt></td>
-      <td>A named mapping between characters<br>and bytes</td></tr>
-  <tr><td valign=top><tt>{@link java.nio.charset.CharsetDecoder}</tt></td>
-      <td>Decodes bytes into characters</td></tr>
-  <tr><td valign=top><tt>{@link java.nio.charset.CharsetEncoder}&nbsp;&nbsp;</tt></td>
-      <td>Encodes characters into bytes</td></tr>
-  <tr><td valign=top><tt>{@link java.nio.charset.CoderResult}&nbsp;&nbsp;</tt></td>
-      <td>Describes coder results</td></tr>
-  <tr><td valign=top><tt>{@link java.nio.charset.CodingErrorAction}&nbsp;&nbsp;</tt></td>
-      <td>Describes actions to take when<br>coding errors are detected</td></tr>
-
-</table></blockquote>
-
-<p> A <i>charset</i> is named mapping between sequences of sixteen-bit Unicode
-characters and sequences of bytes, in the sense defined in <a
-href="http://www.ietf.org/rfc/rfc2278.txt"><i>RFC&nbsp;2278</i></a>.  A
-<i>decoder</i> is an engine which transforms bytes in a specific charset into
-characters, and an <i>encoder</i> is an engine which transforms characters into
-bytes.  Encoders and decoders operate on byte and character buffers.  They are
-collectively referred to as <i>coders</i>.
-
-<p> The {@link java.nio.charset.Charset} class defines methods for creating
-coders for a given charset and for retrieving the various names associated with
-a charset.  It also defines static methods for testing whether a particular
-charset is supported, for locating charset instances by name, and for
-constructing a map that contains every charset for which support is available
-in the current Java virtual machine.
-
-<p> Most users will not use these classes directly; instead they will use the
-existing charset-related constructors and methods in the {@link
-java.lang.String} class, together with the existing {@link
-java.io.InputStreamReader} and {@link java.io.OutputStreamWriter} classes, all
-of whose implementations have been reworked to make use of the charset
-facilities defined in this package.  A small number of changes have been made
-to the {@link java.io.InputStreamReader} and {@link java.io.OutputStreamWriter}
-classes in order to allow explicit charset objects to be specified in the
-construction of instances of those classes.
-
-<p> Support for new charsets can be made available via the interface defined in
-the {@link java.nio.charset.spi.CharsetProvider} class in the <tt>{@link
-java.nio.charset.spi}</tt> package.
-
-<p> Unless otherwise noted, passing a <tt>null</tt> argument to a constructor
-or method in any class or interface in this package will cause a {@link
-java.lang.NullPointerException NullPointerException} to be thrown.
-
-
-@since 1.4
-@author Mark Reinhold
-@author JSR-51 Expert Group
-
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/nio/charset/spi/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * Service-provider classes for the {@link java.nio.charset} package.
+ *
+ * <p> Only developers who are defining new charsets should need to
+ * make direct use of this package.  </p>
+ *
+ * <p> Unless otherwise noted, passing a {@code null} argument to a
+ * constructor or method in any class or interface in this package
+ * will cause a {@link java.lang.NullPointerException
+ * NullPointerException} to be thrown.
+ *
+ * @since 1.4
+ * @author Mark Reinhold
+ * @author JSR-51 Expert Group
+ */
+package java.nio.charset.spi;
--- a/src/java.base/share/classes/java/nio/charset/spi/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-<!--
- Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation.  Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
--->
-
-<!doctype html public "-//IETF//DTD HTML//EN">
-<html>
-<body bgcolor="white">
-
-Service-provider classes for the <tt>{@link java.nio.charset}</tt> package.
-
-<p> Only developers who are defining new charsets should need to make direct
-use of this package.  </p>
-
-<p> Unless otherwise noted, passing a <tt>null</tt> argument to a constructor
-or method in any class or interface in this package will cause a {@link
-java.lang.NullPointerException NullPointerException} to be thrown.
-
-
-@since 1.4
-@author Mark Reinhold
-@author JSR-51 Expert Group
-
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/nio/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * Defines buffers, which are containers for data, and provides an
+ * overview of the other NIO packages.
+ *
+ *
+ * <p> The central abstractions of the NIO APIs are: </p>
+ *
+ * <ul>
+ *
+ *   <li><p> <a href="#buffers"><i>Buffers</i></a>, which are containers for data;
+ *   </p></li>
+ *
+ *   <li><p> <a
+ *   href="charset/package-summary.html"><i>Charsets</i></a> and their
+ *   associated <i>decoders</i> and <i>encoders</i>, <br> which
+ *   translate between bytes and Unicode characters; </p></li>
+ *
+ *   <li><p> <a
+ *   href="channels/package-summary.html"><i>Channels</i></a> of
+ *   various types, which represent connections <br> to entities
+ *   capable of performing I/O operations; and </p></li>
+ *
+ *   <li><p> <i>Selectors</i> and <i>selection keys</i>, which
+ *   together with <br> <i>selectable channels</i> define a <a
+ *   href="channels/package-summary.html#multiplex">multiplexed,
+ *   non-blocking <br> I/O</a>&nbsp;facility.  </p></li>
+ *
+ *  </ul>
+ *
+ * <p> The <tt>java.nio</tt> package defines the buffer classes, which
+ * are used throughout the NIO APIs.  The charset API is defined in
+ * the {@link java.nio.charset} package, and the channel and selector
+ * APIs are defined in the {@link java.nio.channels} package.  Each of
+ * these subpackages has its own service-provider (SPI) subpackage,
+ * the contents of which can be used to extend the platform's default
+ * implementations or to construct alternative implementations.
+ *
+ * <a name="buffers"> </a>
+ *
+ * <blockquote><table cellspacing=1 cellpadding=0 summary="Description of the various buffers">
+ *   <tr><th align="left">Buffers</th><th align="left">Description</th></tr>
+ *   <tr><td valign=top><tt>{@link java.nio.Buffer}</tt></td>
+ *       <td>Position, limit, and capacity;
+ *           <br>clear, flip, rewind, and mark/reset</td></tr>
+ *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.ByteBuffer}</tt></td>
+ *       <td>Get/put, compact, views; allocate,&nbsp;wrap</td></tr>
+ *   <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;{@link java.nio.MappedByteBuffer}&nbsp;&nbsp;</tt></td>
+ *       <td>A byte buffer mapped to a file</td></tr>
+ *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.CharBuffer}</tt></td>
+ *       <td>Get/put, compact; allocate,&nbsp;wrap</td></tr>
+ *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.DoubleBuffer}</tt></td>
+ *       <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
+ *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.FloatBuffer}</tt></td>
+ *       <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
+ *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.IntBuffer}</tt></td>
+ *       <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
+ *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.LongBuffer}</tt></td>
+ *       <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
+ *   <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.ShortBuffer}</tt></td>
+ *       <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
+ *   <tr><td valign=top><tt>{@link java.nio.ByteOrder}</tt></td>
+ *       <td>Typesafe enumeration for&nbsp;byte&nbsp;orders</td></tr>
+ * </table></blockquote>
+ *
+ * <p> A <i>buffer</i> is a container for a fixed amount of data of a
+ * specific primitive type.  In addition to its content a buffer has a
+ * <i>position</i>, which is the index of the next element to be read
+ * or written, and a <i>limit</i>, which is the index of the first
+ * element that should not be read or written.  The base {@link
+ * java.nio.Buffer} class defines these properties as well as methods
+ * for <i>clearing</i>, <i>flipping</i>, and <i>rewinding</i>, for
+ * <i>marking</i> the current position, and for <i>resetting</i> the
+ * position to the previous mark.
+ *
+ * <p> There is a buffer class for each non-boolean primitive type.
+ * Each class defines a family of <i>get</i> and <i>put</i> methods
+ * for moving data out of and in to a buffer, methods for
+ * <i>compacting</i>, <i>duplicating</i>, and <i>slicing</i> a buffer,
+ * and static methods for <i>allocating</i> a new buffer as well as
+ * for <i>wrapping</i> an existing array into a buffer.
+ *
+ * <p> Byte buffers are distinguished in that they can be used as the
+ * sources and targets of I/O operations.  They also support several
+ * features not found in the other buffer classes:
+ *
+ * <ul>
+ *
+ *   <li><p> A byte buffer can be allocated as a <a
+ *   href="ByteBuffer.html#direct"> <i>direct</i></a> buffer, in which
+ *   case the Java virtual machine will make a best effort to perform
+ *   native I/O operations directly upon it.  </p></li>
+ *
+ *   <li><p> A byte buffer can be created by {@link
+ *   java.nio.channels.FileChannel#map <i>mapping</i>} a region of a
+ *   file directly into memory, in which case a few additional
+ *   file-related operations defined in the {@link
+ *   java.nio.MappedByteBuffer} class are available.  </p></li>
+ *
+ *   <li><p> A byte buffer provides access to its content as either a
+ *   heterogeneous or homogeneous sequence of <a
+ *   href="ByteBuffer.html#bin"><i>binary data</i></a> of any
+ *   non-boolean primitive type, in either big-endian or little-endian
+ *   <a href="ByteOrder.html">byte order</a>.  </p></li>
+ *
+ * </ul>
+ *
+ * <p> Unless otherwise noted, passing a <tt>null</tt> argument to a
+ * constructor or method in any class or interface in this package
+ * will cause a {@link java.lang.NullPointerException
+ * NullPointerException} to be thrown.
+ *
+ * @since 1.4
+ * @author Mark Reinhold
+ * @author JSR-51 Expert Group
+ */
+package java.nio;
--- a/src/java.base/share/classes/java/nio/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-<!--
- Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation.  Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
--->
-
-<!doctype html public "-//IETF//DTD HTML//EN">
-<html>
-<body bgcolor="white">
-
-Defines buffers, which are containers for data, and provides an overview of the
-other NIO packages.
-
-
-<p> The central abstractions of the NIO APIs are: </p>
-
-<ul>
-
-  <li><p> <a href="#buffers"><i>Buffers</i></a>, which are containers for data;
-  </p></li>
-
-  <li><p> <a href="charset/package-summary.html"><i>Charsets</i></a> and their
-  associated <i>decoders</i> and <i>encoders</i>, <br> which translate between
-  bytes and Unicode characters; </p></li>
-
-  <li><p> <a href="channels/package-summary.html"><i>Channels</i></a> of
-  various types, which represent connections <br> to entities capable of
-  performing I/O operations; and </p></li>
-
-  <li><p> <i>Selectors</i> and <i>selection keys</i>, which together with <br>
-  <i>selectable channels</i> define a <a
-  href="channels/package-summary.html#multiplex">multiplexed, non-blocking <br>
-  I/O</a>&nbsp;facility.  </p></li>
-
-</ul>
-
-<p> The <tt>java.nio</tt> package defines the buffer classes, which are used
-throughout the NIO APIs.  The charset API is defined in the {@link
-java.nio.charset} package, and the channel and selector APIs are defined in the
-{@link java.nio.channels} package.  Each of these subpackages has its own
-service-provider (SPI) subpackage, the contents of which can be used to extend
-the platform's default implementations or to construct alternative
-implementations.
-
-
-<a name="buffers"> </a>
-
-<blockquote><table cellspacing=1 cellpadding=0 summary="Description of the various buffers">
-  <tr><th><p align="left">Buffers</p></th><th><p align="left">Description</p></th></tr> 
-  <tr><td valign=top><tt>{@link java.nio.Buffer}</tt></td>
-      <td>Position, limit, and capacity;
-          <br>clear, flip, rewind, and mark/reset</td></tr>
-  <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.ByteBuffer}</tt></td>
-      <td>Get/put, compact, views; allocate,&nbsp;wrap</td></tr>
-  <tr><td valign=top><tt>&nbsp;&nbsp;&nbsp;&nbsp;{@link java.nio.MappedByteBuffer}&nbsp;&nbsp;</tt></td>
-      <td>A byte buffer mapped to a file</td></tr>
-  <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.CharBuffer}</tt></td>
-      <td>Get/put, compact; allocate,&nbsp;wrap</td></tr>
-  <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.DoubleBuffer}</tt></td>
-      <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
-  <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.FloatBuffer}</tt></td>
-      <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
-  <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.IntBuffer}</tt></td>
-      <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
-  <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.LongBuffer}</tt></td>
-      <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
-  <tr><td valign=top><tt>&nbsp;&nbsp;{@link java.nio.ShortBuffer}</tt></td>
-      <td>&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;'</td></tr>
-  <tr><td valign=top><tt>{@link java.nio.ByteOrder}</tt></td>
-      <td>Typesafe enumeration for&nbsp;byte&nbsp;orders</td></tr>
-</table></blockquote>
-
-<p> A <i>buffer</i> is a container for a fixed amount of data of a specific
-primitive type.  In addition to its content a buffer has a <i>position</i>,
-which is the index of the next element to be read or written, and a
-<i>limit</i>, which is the index of the first element that should not be read
-or written.  The base {@link java.nio.Buffer} class defines these properties as
-well as methods for <i>clearing</i>, <i>flipping</i>, and <i>rewinding</i>, for
-<i>marking</i> the current position, and for <i>resetting</i> the position to
-the previous mark.
-
-<p> There is a buffer class for each non-boolean primitive type.  Each class
-defines a family of <i>get</i> and <i>put</i> methods for moving data out of
-and in to a buffer, methods for <i>compacting</i>, <i>duplicating</i>, and
-<i>slicing</i> a buffer, and static methods for <i>allocating</i> a new buffer
-as well as for <i>wrapping</i> an existing array into a buffer.
-
-<p> Byte buffers are distinguished in that they can be used as the sources and
-targets of I/O operations.  They also support several features not found in the
-other buffer classes:
-
-<ul>
-
-  <li><p> A byte buffer can be allocated as a <a href="ByteBuffer.html#direct">
-  <i>direct</i></a> buffer, in which case the Java virtual machine will make a
-  best effort to perform native I/O operations directly upon it.  </p></li>
-
-  <li><p> A byte buffer can be created by {@link
-  java.nio.channels.FileChannel#map <i>mapping</i>} a region of a
-  file directly into memory, in which case a few additional file-related
-  operations defined in the {@link java.nio.MappedByteBuffer} class are
-  available.  </p></li>
-
-  <li><p> A byte buffer provides access to its content as either a heterogeneous
-  or homogeneous sequence of <a href="ByteBuffer.html#bin"><i>binary data</i></a>
-  of any non-boolean primitive type, in either big-endian or little-endian <a
-  href="ByteOrder.html">byte order</a>.  </p></li>
-
-</ul>
-
-<p> Unless otherwise noted, passing a <tt>null</tt> argument to a constructor
-or method in any class or interface in this package will cause a {@link
-java.lang.NullPointerException NullPointerException} to be thrown.
-
-@since 1.4
-@author Mark Reinhold
-@author JSR-51 Expert Group
-
-</body>
-</html>
--- a/src/java.base/share/classes/java/text/AttributedString.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/java/text/AttributedString.java	Thu May 28 16:51:18 2015 -0700
@@ -332,7 +332,7 @@
      * @param beginIndex Index of the first character of the range.
      * @param endIndex Index of the character following the last character of the range.
      * @exception NullPointerException if <code>attribute</code> is null.
-     * @exception IllegalArgumentException if beginIndex is less then 0, endIndex is
+     * @exception IllegalArgumentException if beginIndex is less than 0, endIndex is
      * greater than the length of the string, or beginIndex and endIndex together don't
      * define a non-empty subrange of the string.
      */
@@ -357,7 +357,7 @@
      * @param endIndex Index of the character following the last
      * character of the range.
      * @exception NullPointerException if <code>attributes</code> is null.
-     * @exception IllegalArgumentException if beginIndex is less then
+     * @exception IllegalArgumentException if beginIndex is less than
      * 0, endIndex is greater than the length of the string, or
      * beginIndex and endIndex together don't define a non-empty
      * subrange of the string and the attributes parameter is not an
@@ -580,7 +580,7 @@
      * @param beginIndex the index of the first character
      * @param endIndex the index of the character following the last character
      * @return an iterator providing access to the text and its attributes
-     * @exception IllegalArgumentException if beginIndex is less then 0,
+     * @exception IllegalArgumentException if beginIndex is less than 0,
      * endIndex is greater than the length of the string, or beginIndex is
      * greater than endIndex.
      */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/text/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Provides classes and interfaces for handling text, dates, numbers,
+ * and messages in a manner independent of natural languages.  This
+ * means your main application or applet can be written to be
+ * language-independent, and it can rely upon separate,
+ * dynamically-linked localized resources. This allows the flexibility
+ * of adding localizations for new localizations at any time.
+ *
+ * <p>These classes are capable of formatting dates, numbers, and
+ * messages, parsing; searching and sorting strings; and iterating
+ * over characters, words, sentences, and line breaks.  This package
+ * contains three main groups of classes and interfaces:
+ *
+ * <ul>
+ * <li>Classes for iteration over text
+ * <li>Classes for formatting and parsing
+ * <li>Classes for string collation
+ * </ul>
+ *
+ * @since 1.1
+ */
+package java.text;
--- a/src/java.base/share/classes/java/text/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Provides classes and interfaces for handling text, dates, numbers, and messages
-in a manner independent of natural languages.  This means your main application
-or applet can be written to be language-independent, and it can rely upon
-separate, dynamically-linked localized resources. This allows the flexibility
-of adding localizations for new localizations at any time.
-<p>
-These classes are capable of formatting dates, numbers, and messages, parsing;
-searching and sorting strings; and iterating over characters, words, sentences,
-and line breaks.  This package contains three main groups of classes and
-interfaces:
-<ul>
-<li>Classes for iteration over text
-<li>Classes for formatting and parsing
-<li>Classes for string collation
-</ul>
-<!--
-<h2>Package Specification</h2>
-
-##### FILL IN ANY SPECS NEEDED BY JAVA COMPATIBILITY KIT #####
-<ul>
-  <li><a href="">##### REFER TO ANY FRAMEMAKER SPECIFICATION HERE #####</a>
-</ul>
-
-<h2>Related Documentation</h2>
-
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-  <li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
-</ul>
--->
-
-@since 1.1
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/text/spi/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * Service provider classes for the classes in the java.text package.
+ *
+ * @since 1.6
+ */
+package java.text.spi;
--- a/src/java.base/share/classes/java/text/spi/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-Service provider classes for the classes in the java.text package.
-<!--
-<h2>Package Specification</h2>
-
-##### FILL IN ANY SPECS NEEDED BY JAVA COMPATIBILITY KIT #####
-<ul>
-  <li><a href="">##### REFER TO ANY FRAMEMAKER SPECIFICATION HERE #####</a>
-</ul>
-
-<h2>Related Documentation</h2>
-
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-  <li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
-</ul>
--->
-
-@since 1.6
-</body>
-</html>
--- a/src/java.base/share/classes/java/time/chrono/HijrahChronology.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/java/time/chrono/HijrahChronology.java	Thu May 28 16:51:18 2015 -0700
@@ -490,6 +490,16 @@
         return yearOfEra;
     }
 
+    /**
+     * Creates the HijrahEra object from the numeric value.
+     * The Hijrah calendar system has only one era covering the
+     * proleptic years greater than zero.
+     * This method returns the singleton HijrahEra for the value 1.
+     *
+     * @param eraValue  the era value
+     * @return the calendar system era, not null
+     * @throws DateTimeException if unable to create the era
+     */
     @Override
     public HijrahEra eraOf(int eraValue) {
         switch (eraValue) {
--- a/src/java.base/share/classes/java/time/format/DateTimeFormatter.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/java/time/format/DateTimeFormatter.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1333,8 +1333,8 @@
      * If the time '23:59:60' is received, then a simple conversion is applied,
      * replacing the second-of-minute of 60 with 59. This query can be used
      * on the parse result to determine if the leap-second adjustment was made.
-     * The query will return one second of excess if it did adjust to remove
-     * the leap-second, and zero if not. Note that applying a leap-second
+     * The query will return {@code true} if it did adjust to remove the
+     * leap-second, and {@code false} if not. Note that applying a leap-second
      * smoothing mechanism, such as UTC-SLS, is the responsibility of the
      * application, as follows:
      * <pre>
--- a/src/java.base/share/classes/java/time/package-info.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/java/time/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -120,9 +120,10 @@
  *
  * <h3>Duration and Period</h3>
  * <p>
- * Beyond dates and times, the API also allows the storage of period and durations of time.
+ * Beyond dates and times, the API also allows the storage of periods and durations of time.
  * A {@link java.time.Duration} is a simple measure of time along the time-line in nanoseconds.
- * A {@link java.time.Period} expresses an amount of time in units meaningful to humans, such as years or hours.
+ * A {@link java.time.Period} expresses an amount of time in units meaningful
+ * to humans, such as years or days.
  * </p>
  *
  * <h3>Additional value types</h3>
--- a/src/java.base/share/classes/java/util/Properties.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/java/util/Properties.java	Thu May 28 16:51:18 2015 -0700
@@ -73,8 +73,7 @@
  * Unicode escapes as defined in section 3.3 of
  * <cite>The Java&trade; Language Specification</cite>;
  * only a single 'u' character is allowed in an escape
- * sequence. The native2ascii tool can be used to convert property files to and
- * from other character encodings.
+ * sequence.
  *
  * <p> The {@link #loadFromXML(InputStream)} and {@link
  * #storeToXML(OutputStream, String, String)} methods load and store properties
@@ -108,9 +107,6 @@
  * <p>This class is thread-safe: multiple threads can share a single
  * <tt>Properties</tt> object without the need for external synchronization.
  *
- * @see <a href="../../../technotes/tools/solaris/native2ascii.html">native2ascii tool for Solaris</a>
- * @see <a href="../../../technotes/tools/windows/native2ascii.html">native2ascii tool for Windows</a>
- *
  * @author  Arthur van Hoff
  * @author  Michael McCloskey
  * @author  Xueming Shen
--- a/src/java.base/share/classes/java/util/jar/JarFile.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/java/util/jar/JarFile.java	Thu May 28 16:51:18 2015 -0700
@@ -268,13 +268,25 @@
     }
 
     /**
-     * Returns an enumeration of the zip file entries.
+     * Returns an enumeration of the jar file entries.
+     *
+     * @return an enumeration of the jar file entries
+     * @throws IllegalStateException
+     *         may be thrown if the jar file has been closed
      */
     public Enumeration<JarEntry> entries() {
         return new JarEntryIterator();
     }
 
-    @Override
+    /**
+     * Returns an ordered {@code Stream} over the jar file entries.
+     * Entries appear in the {@code Stream} in the order they appear in
+     * the central directory of the jar file.
+     *
+     * @return an ordered {@code Stream} of entries in this jar file
+     * @throws IllegalStateException if the jar file has been closed
+     * @since 1.8
+     */
     public Stream<JarEntry> stream() {
         return StreamSupport.stream(Spliterators.spliterator(
                 new JarEntryIterator(), size(),
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/util/jar/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 1998, 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.  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.
+ */
+
+/**
+ * Provides classes for reading and writing the JAR (Java ARchive)
+ * file format, which is based on the standard ZIP file format with an
+ * optional manifest file.  The manifest stores meta-information about
+ * the JAR file contents and is also used for signing JAR files.
+ *
+ * <h2>Package Specification</h2>
+ *
+ * The <code>java.util.jar</code> package is based on the following
+ * specifications:
+ *
+ * <ul>
+ *   <li><b>Info-ZIP file format</b> - The JAR format is based on the Info-ZIP
+ *       file format. See
+ *       <a href="../zip/package-summary.html#package_description">java.util.zip
+ *       package description.</a> <p>
+ *       In JAR files, all file names must be encoded in the UTF-8 encoding.
+ *   <li><a href="../../../../technotes/guides/jar/jar.html">
+ *       Manifest and Signature Specification</a> - The manifest format specification.
+ * </ul>
+ *
+ * @since 1.2
+ */
+package java.util.jar;
--- a/src/java.base/share/classes/java/util/jar/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-Copyright (c) 1998, 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.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Provides classes for reading and writing the JAR (Java ARchive) file
-format, which is based on the standard ZIP file format with an
-optional manifest file.  The manifest stores meta-information about the
-JAR file contents and is also used for signing JAR files.
-
-
-<h2>Package Specification</h2>
-
-The <code>java.util.jar</code> package is based on the following specifications:
-<ul>
-  <li><b>Info-ZIP file format</b> - The JAR format is based on the Info-ZIP 
-      file format. See 
-      <a href="../zip/package-summary.html#package_description">java.util.zip
-      package description.</a> <p>
-      In JAR files, all file names must be encoded in the UTF-8 encoding.
-  <li><a href="../../../../technotes/guides/jar/jar.html">
-      Manifest and Signature Specification</a> - The manifest format specification.
-</ul>
-
-<!--
-<h2>Related Documentation</h2>
-
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-  <li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
-</ul>
--->
-
-@since 1.2
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/util/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 1998, 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.  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.
+ */
+
+/**
+ * Contains the collections framework, legacy collection classes,
+ * event model, date and time facilities, internationalization, and
+ * miscellaneous utility classes (a string tokenizer, a random-number
+ * generator, and a bit array).
+ *
+ * <h2>Package Specification</h2>
+ * <ul>
+ *   <li><a href="../../../technotes/guides/collections/overview.html"><b>Collections Framework Overview</b></a>
+ *   <li><a href="../../../technotes/guides/collections/reference.html"><b>
+ *        Collections Framework Annotated Outline</b></a>
+ * </ul>
+ *
+ * <h2>Related Documentation</h2>
+ * For overviews, tutorials, examples, guides, and tool documentation,
+ * please see:
+ * <ul>
+ *     <li><a href="http://docs.oracle.com/javase/tutorial/collections/index.html">
+ *        <b>Collections Framework Tutorial</b></a>
+ *     <li><a
+ *     href="../../../technotes/guides/collections/designfaq.html"><b>Collections
+ *     Framework Design FAQ</b></a>
+ * </ul>
+ *
+ * @since 1.0
+ */
+package java.util;
--- a/src/java.base/share/classes/java/util/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-Copyright (c) 1998, 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.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Contains the collections framework, legacy collection classes, event model,
-date and time facilities, internationalization, and miscellaneous utility
-classes (a string tokenizer, a random-number generator, and a bit array).
-
-<h2>Package Specification</h2>
-<ul>
-  <li><a href="../../../technotes/guides/collections/overview.html"><b>Collections Framework Overview</b></a>
-  <li><a href="../../../technotes/guides/collections/reference.html"><b>
-       Collections Framework Annotated Outline</b></a>
-</ul>
-
-<h2>Related Documentation</h2>
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-    <li><a href="http://docs.oracle.com/javase/tutorial/collections/index.html">
-       <b>Collections Framework Tutorial</b></a>
-    <li><a
-    href="../../../technotes/guides/collections/designfaq.html"><b>Collections
-    Framework Design FAQ</b></a>
-</ul>
-
-@since 1.0
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/util/regex/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2000, 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.  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.
+ */
+
+/**
+ * Classes for matching character sequences against patterns specified
+ * by regular expressions.
+ *
+ * <p> An instance of the {@link java.util.regex.Pattern} class
+ * represents a regular expression that is specified in string form in
+ * a syntax similar to that used by Perl.
+ *
+ * <p> Instances of the {@link java.util.regex.Matcher} class are used
+ * to match character sequences against a given pattern.  Input is
+ * provided to matchers via the {@link java.lang.CharSequence}
+ * interface in order to support matching against characters from a
+ * wide variety of input sources. </p>
+ *
+ * <p> Unless otherwise noted, passing a <tt>null</tt> argument to a
+ * method in any class or interface in this package will cause a
+ * {@link java.lang.NullPointerException NullPointerException} to be
+ * thrown.
+ *
+ * <h2>Related Documentation</h2>
+ *
+ * <p> An excellent tutorial and overview of regular expressions is <a
+ * href="http://www.oreilly.com/catalog/regex/"><i>Mastering Regular
+ * Expressions</i>, Jeffrey E. F. Friedl, O'Reilly and Associates,
+ * 1997.</a> </p>
+ *
+ * @since 1.4
+ * @author Mike McCloskey
+ * @author Mark Reinhold
+ */
+package java.util.regex;
--- a/src/java.base/share/classes/java/util/regex/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-Copyright (c) 2000, 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.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Classes for matching character sequences against patterns specified by regular
-expressions.
-
-<p> An instance of the {@link java.util.regex.Pattern} class represents a
-regular expression that is specified in string form in a syntax similar to
-that used by Perl.
-
-<p> Instances of the {@link java.util.regex.Matcher} class are used to match
-character sequences against a given pattern.  Input is provided to matchers via
-the {@link java.lang.CharSequence} interface in order to support matching
-against characters from a wide variety of input sources. </p>
-
-<p> Unless otherwise noted, passing a <tt>null</tt> argument to a method
-in any class or interface in this package will cause a
-{@link java.lang.NullPointerException NullPointerException} to be thrown.
-
-<h2>Related Documentation</h2>
-
-<p> An excellent tutorial and overview of regular expressions is <a
-href="http://www.oreilly.com/catalog/regex/"><i>Mastering Regular
-Expressions</i>, Jeffrey E. F. Friedl, O'Reilly and Associates, 1997.</a> </p>
-
-<!--
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-  <li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
-</ul>
--->
-
-@since 1.4
-@author Mike McCloskey
-@author Mark Reinhold
-
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/util/spi/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * Service provider classes for the classes in the java.util package.
+ *
+ * @since 1.6
+ */
+package java.util.spi;
--- a/src/java.base/share/classes/java/util/spi/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-Service provider classes for the classes in the java.util package.
-<!--
-<h2>Package Specification</h2>
-
-##### FILL IN ANY SPECS NEEDED BY JAVA COMPATIBILITY KIT #####
-<ul>
-  <li><a href="">##### REFER TO ANY FRAMEMAKER SPECIFICATION HERE #####</a>
-</ul>
-
-<h2>Related Documentation</h2>
-
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-  <li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
-</ul>
--->
-
-@since 1.6
-</body>
-</html>
--- a/src/java.base/share/classes/java/util/zip/ZipFile.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/java/util/zip/ZipFile.java	Thu May 28 16:51:18 2015 -0700
@@ -538,7 +538,7 @@
     }
 
     /**
-     * Return an ordered {@code Stream} over the ZIP file entries.
+     * Returns an ordered {@code Stream} over the ZIP file entries.
      * Entries appear in the {@code Stream} in the order they appear in
      * the central directory of the ZIP file.
      *
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/javax/crypto/interfaces/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Provides interfaces for Diffie-Hellman keys as defined in RSA
+ * Laboratories' PKCS #3.
+ *
+ * <P>Note that these interfaces are intended only for key
+ * implementations whose key material is accessible and
+ * available. These interfaces are not intended for key implementations
+ * whose key material resides in inaccessible, protected storage (such
+ * as in a hardware device).
+ *
+ * <P>For more developer information on how to use these interfaces,
+ * including information on how to design <code>Key</code> classes for
+ * hardware devices, please refer to the cryptographic provider
+ * developer guide:
+ *
+ * <ul>
+ *   <li><a href=
+ *     "{@docRoot}/../technotes/guides/security/crypto/HowToImplAProvider.html">
+ *     <b>How to Implement a Provider for the Java&trade; Cryptography Architecture
+ *     </b></a></li>
+ * </ul>
+ *
+ * <h2>Package Specification</h2>
+ *
+ * <ul>
+ *   <li>PKCS #3: Diffie-Hellman Key-Agreement Standard, Version 1.4,
+ *       November 1993.</li>
+ * </ul>
+ *
+ * <h2>Related Documentation</h2>
+ *
+ * For further documentation, please see:
+ * <ul>
+ *   <li>
+ *     <a href=
+ *       "{@docRoot}/../technotes/guides/security/crypto/CryptoSpec.html">
+ *       <b>Java&trade; Cryptography Architecture API Specification and Reference
+ *       </b></a></li>
+ * </ul>
+ *
+ * @since 1.4
+ */
+package javax.crypto.interfaces;
--- a/src/java.base/share/classes/javax/crypto/interfaces/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-<!--
-Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
-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.
--->
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-
-<body bgcolor="white">
-
-Provides interfaces for Diffie-Hellman keys as defined in
-RSA Laboratories' PKCS #3.
-<P>
-Note that these interfaces are intended only
-for key implementations whose key material
-is accessible and available. These
-interfaces are not intended for key
-implementations whose key material resides
-in inaccessible, protected storage (such as
-in a hardware device).
-<P>
-For more developer information on how to use
-these interfaces, including information on
-how to design <code>Key</code> classes
-for hardware devices, please refer to the
-cryptographic provider developer guide:
-<ul>
-  <li><a href=
-    "{@docRoot}/../technotes/guides/security/crypto/HowToImplAProvider.html">
-    <b>How to Implement a Provider for the Java&trade; Cryptography Architecture
-    </b></a></li>
-</ul>
-
-<h2>Package Specification</h2>
-
-<ul>
-  <li>PKCS #3: Diffie-Hellman Key-Agreement Standard, Version 1.4,
-      November 1993.</li>
-</ul>
-
-<h2>Related Documentation</h2>
-
-For further documentation, please see:
-<ul>
-  <li>
-    <a href=
-      "{@docRoot}/../technotes/guides/security/crypto/CryptoSpec.html">
-      <b>Java&trade; Cryptography Architecture API Specification and Reference
-      </b></a></li>
-</ul>
-
-@since 1.4
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/javax/crypto/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Provides the classes and interfaces for cryptographic
+ * operations. The cryptographic operations defined in this package
+ * include encryption, key generation and key agreement, and Message
+ * Authentication Code (MAC) generation.
+ *
+ * <p>Support for encryption includes symmetric, asymmetric, block,
+ * and stream ciphers. This package also supports secure streams and
+ * sealed objects.
+ *
+ * <p>Many of the classes provided in this package are provider-based.
+ * The class itself defines a programming interface to which
+ * applications may write.  The implementations themselves may then be
+ * written by independent third-party vendors and plugged in
+ * seamlessly as needed.  Therefore application developers may take
+ * advantage of any number of provider-based implementations without
+ * having to add or rewrite code.
+ *
+ * <ul>
+ *   <li><a href="{@docRoot}/../technotes/guides/security/StandardNames.html">
+ *     <b>Java&trade; Cryptography Architecture Standard Algorithm Name
+ *     Documentation</b></a></li>
+ * </ul>
+ *
+ * <h2>Related Documentation</h2>
+ *
+ * For further documentation, please see:
+ * <ul>
+ *   <li>
+ *     <a href=
+ *       "{@docRoot}/../technotes/guides/security/crypto/CryptoSpec.html">
+ *       <b>Java&trade; Cryptography Architecture (JCA) Reference Guide
+ *       </b></a></li>
+ *   <li>
+ *     <a href=
+ *       "{@docRoot}/../technotes/guides/security/crypto/HowToImplAProvider.html">
+ *       <b>How to Implement a Provider in the Java&trade; Cryptography
+ *          Architecture </b></a></li>
+ * </ul>
+ *
+ * @since 1.4
+ */
+package javax.crypto;
--- a/src/java.base/share/classes/javax/crypto/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-<!--
-Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-
-<body bgcolor="white">
-
-Provides the classes and interfaces for cryptographic operations. The
-cryptographic operations defined in this package include encryption,
-key generation and key agreement, and Message Authentication Code
-(MAC) generation.
-
-<p>Support for encryption includes symmetric, asymmetric, block, and
-stream ciphers. This package also supports secure streams and sealed
-objects.
-
-<p>Many of the classes provided in this package are provider-based.  The
-class itself defines a programming interface to which applications may
-write.  The implementations themselves may then be written by
-independent third-party vendors and plugged in seamlessly as needed.
-Therefore application developers may take advantage of any number of
-provider-based implementations without having to add or rewrite code.
-
-<h2>Package Specification</h2>
-
-<ul>
-  <li><a href="{@docRoot}/../technotes/guides/security/StandardNames.html">
-    <b>Java&trade;
-    Cryptography Architecture Standard Algorithm Name
-    Documentation</b></a></li>
-</ul>
-
-<h2>Related Documentation</h2>
-
-For further documentation, please see:
-<ul>
-  <li>
-    <a href=
-      "{@docRoot}/../technotes/guides/security/crypto/CryptoSpec.html">
-      <b>Java&trade;
-       Cryptography Architecture (JCA) Reference Guide
-      </b></a></li>
-  <li>
-    <a href=
-      "{@docRoot}/../technotes/guides/security/crypto/HowToImplAProvider.html">
-      <b>How to Implement a Provider in the
-      Java&trade; Cryptography Architecture
-      </b></a></li>
-</ul>
-
-@since 1.4
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/javax/crypto/spec/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Provides classes and interfaces for key specifications and
+ * algorithm parameter specifications.
+ *
+ * <p>A key specification is a transparent representation of the key
+ * material that constitutes a key. A key may be specified in an
+ * algorithm-specific way, or in an algorithm-independent encoding
+ * format (such as ASN.1).  This package contains key specifications
+ * for Diffie-Hellman public and private keys, as well as key
+ * specifications for DES, Triple DES, and PBE secret keys.
+ *
+ * <p>An algorithm parameter specification is a transparent
+ * representation of the sets of parameters used with an
+ * algorithm. This package contains algorithm parameter specifications
+ * for parameters used with the Diffie-Hellman, DES, Triple DES, PBE,
+ * RC2 and RC5 algorithms.
+ *
+ *
+ * <ul>
+ * <li>PKCS #3: Diffie-Hellman Key-Agreement Standard, Version 1.4,
+ * November 1993.</li>
+ * <li>PKCS #5: Password-Based Encryption Standard, Version 1.5,
+ * November 1993.</li>
+ * <li>Federal Information Processing Standards Publication (FIPS PUB) 46-2:
+ * Data Encryption Standard (DES) </li>
+ * </ul>
+ *
+ * <h2>Related Documentation</h2>
+ *
+ * For documentation that includes information about algorithm
+ * parameter and key specifications, please see:
+ *
+ * <ul>
+ * <li>
+ *  <a href=
+ *    "{@docRoot}/../technotes/guides/security/crypto/CryptoSpec.html">
+ *    <b>Java&trade; Cryptography Architecture API Specification and Reference
+ *    </b></a></li>
+ * <li>
+ *  <a href=
+ *    "{@docRoot}/../technotes/guides/security/crypto/HowToImplAProvider.html">
+ *    <b>How to Implement a Provider for the
+ *    Java&trade; Cryptography Architecture
+ *    </b></a></li>
+ * </ul>
+ *
+ * @since 1.4
+ */
+package javax.crypto.spec;
--- a/src/java.base/share/classes/javax/crypto/spec/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-<!--
-Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
-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.
--->
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-
-<body bgcolor="white">
-
-Provides classes and interfaces for key specifications and algorithm
-parameter specifications.
-
-<p>A key specification is a transparent representation of the key
-material that constitutes a key. A key may be specified in an
-algorithm-specific way, or in an algorithm-independent encoding format
-(such as ASN.1).  This package contains key specifications for
-Diffie-Hellman public and private keys, as well as key specifications for DES,
-Triple DES, and PBE secret keys.
-
-<p>An algorithm parameter specification is a transparent representation
-of the sets of parameters used with an algorithm. This package contains
-algorithm parameter specifications for parameters used with the
-Diffie-Hellman, DES, Triple DES, PBE, RC2 and RC5 algorithms.
-
-<h2>Package Specification</h2>
-
-<ul>
-  <li>PKCS #3: Diffie-Hellman Key-Agreement Standard, Version 1.4,
-  November 1993.</li>
-  <li>PKCS #5: Password-Based Encryption Standard, Version 1.5,
-  November 1993.</li>
-  <li>Federal Information Processing Standards Publication (FIPS PUB) 46-2:
-  Data Encryption Standard (DES) </li>
-</ul>
-
-<h2>Related Documentation</h2>
-
-For documentation that includes information about algorithm parameter
-and key specifications, please see:
-<ul>
-  <li>
-    <a href=
-      "{@docRoot}/../technotes/guides/security/crypto/CryptoSpec.html">
-      <b>Java&trade; Cryptography Architecture API Specification and Reference
-      </b></a></li>
-  <li>
-    <a href=
-      "{@docRoot}/../technotes/guides/security/crypto/HowToImplAProvider.html">
-      <b>How to Implement a Provider for the
-      Java&trade; Cryptography Architecture
-      </b></a></li>
-</ul>
-
-@since 1.4
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/javax/net/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Provides classes for networking applications. These classes include
+ * factories for creating sockets. Using socket factories you can
+ * encapsulate socket creation and configuration behavior.
+ *
+ * @since 1.4
+ */
+package javax.net;
--- a/src/java.base/share/classes/javax/net/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Provides classes for networking applications. These classes include
-factories for creating sockets. Using socket factories you can encapsulate
-socket creation and configuration behavior.
-<!--
-<h2>Package Specification</h2>
-
-##### FILL IN ANY SPECS NEEDED BY JAVA COMPATIBILITY KIT #####
-<ul>
-  <li><a href="">##### REFER TO ANY FRAMEMAKER SPECIFICATION HERE #####</a>
-</ul>
-
-<h2>Related Documentation</h2>
-
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-  <li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
-</ul>
-
--->
-
-@since 1.4
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/javax/net/ssl/package-info.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * 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.
+ */
+
+/**
+ * Provides classes for the secure socket package. Using the secure
+ * socket classes, you can communicate using SSL or a related security
+ * protocol to reliably detect any errors introduced into the network
+ * byte stream and to optionally encrypt the data and/or authenticate
+ * the communicating peers.
+ *
+ * <ul>
+ * <li><a href="{@docRoot}/../technotes/guides/security/StandardNames.html">
+ * <b>Java&trade; Cryptography Architecture Standard Algorithm Name
+ * Documentation</b></a></li>
+ * </ul>
+ *
+ * @since 1.4
+ */
+package javax.net.ssl;
--- a/src/java.base/share/classes/javax/net/ssl/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation.  Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Provides classes for the secure socket package. Using the secure socket
-classes, you can communicate using SSL or a related security protocol
-to reliably detect any errors introduced into the network byte stream
-and to optionally encrypt the data and/or authenticate the communicating peers.
-
-<h2>Package Specification</h2>
-
-<ul>
-  <li><a href="{@docRoot}/../technotes/guides/security/StandardNames.html">
-    <b>Java&trade; Cryptography Architecture Standard Algorithm Name
-    Documentation</b></a></li>
-</ul>
-
-<!--
-<h2>Related Documentation</h2>
-
-For overviews, tutorials, examples, guides, and tool documentation, please see:
-<ul>
-  <li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
-</ul>
-
--->
-
-@since 1.4
-</body>
-</html>
--- a/src/java.base/share/classes/jdk/internal/util/xml/impl/Parser.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/jdk/internal/util/xml/impl/Parser.java	Thu May 28 16:51:18 2015 -0700
@@ -162,8 +162,8 @@
      * Possible character type values are:<br> - 0 for underscore ('_') or any
      * lower and upper case alphabetical character value;<br> - 1 for colon
      * (':') character;<br> - 2 for dash ('-') and dot ('.') or any decimal
-     * digit character value;<br> - 3 for any kind of white space character<br
-     * /> An ASCII (7 bit) character which does not fall in any category listed
+     * digit character value;<br> - 3 for any kind of white space character<br>
+     * An ASCII (7 bit) character which does not fall in any category listed
      * above is mapped to 0xff.
      */
     private static final byte nmttyp[];
--- a/src/java.base/share/classes/sun/reflect/package.html	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML>
-<HEAD>
-<!--
-
- Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation.  Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
- 
--->
-</HEAD>
-<BODY BGCOLOR="white">
-<P>
-
-<B> Licensee impact of JDK 1.4 reflection changes </B>
-
-</P>
-<P>
-
-Sun's JDK 1.4 contains a new implementation of java.lang.reflect which
-offers substantially higher performance than previous JDKs' native
-code. Licensees can at their discretion port these changes. There are
-no public API or documentation changes associated with the new
-reflection implementation aside from a few minor clarifications in the
-specifications of Method.invoke(), Constructor.newInstance(), and a
-few methods in java.lang.reflect.Field.
-
-</P>
-<P>
-
-The bulk of the new implementation is Java programming language code
-which generates bytecodes, and is therefore portable. If licensees
-desire to port it, the following JVM changes are required:
-
-<OL>
-<LI> The following four new JVM entry points must be added:
-
- <UL>
- <LI> JVM_GetClassDeclaredConstructors
- <LI> JVM_GetClassDeclaredFields
- <LI> JVM_GetClassDeclaredMethods
- <LI> JVM_GetClassAccessFlags
- </UL>
-
-The first three return the declared constructors, fields, and methods
-for a given class, with an option to return only the public ones. They
-are similar in functionality to the earlier GetClassConstructors,
-GetClassFields, and GetClassMethods.  JVM_GetClassDeclaredFields and
-JVM_GetClassDeclaredMethods must intern the Strings for the names of
-the Field and Method objects returned. The fouth returns the access
-flags for a given class as marked in the class file, as opposed to in
-the InnerClasses attribute if the class is an inner class, and
-therefore differs from JVM_GetClassModifiers for inner classes (most
-importantly, protected inner classes; see 4471811.)
-
-<LI> The JVM's link resolver must be modified to allow all field and
-method references from subclasses of sun.reflect.MagicAccessorImpl to
-any other class (even to private members of other classes) to
-succeed. This allows setAccessible() and its associated checks to be
-implemented in Java.
-
-<LI> The code which calls the verifier must skip verification for all
-subclasses of sun.reflect.MagicAccessorImpl. (It was originally
-intended that only a subset of the stub classes used for serialization
-would not pass the verifier, specifically, those subclassing
-SerializationConstructorAccessorImpl; see 4486457 for a case where
-this does not work.)
-
-<LI> The stack walker for security checks must be modified to skip not
-only all Method.invoke() frames, but also any frames for which the
-class is a subclass of sun.reflect.MethodAccessorImpl.
-
-<LI> The JVM entry points JVM_InvokeMethod and
-JVM_NewInstanceFromConstructor are currently still used because the
-first invocation of the bytecode-based reflection is currently slower
-than the original native code. The security checks they perform can,
-however, be disabled, as they are now performed by Java programming
-language code.
-
-</OL>
-
-</P>
-<P>
-
-The following changes were discovered to be necessary for backward
-compatibility with certain applications (see bug 4474172):
-
-<OL>
-
-<LI> The existing JVM entry point JVM_LatestUserDefinedLoader
-(typically used in applications which rely on the 1.1 security
-framework) must skip reflection-related frames in its stack walk:
-specifically all frames associated with subclasses of
-sun.reflect.MethodAccessorImpl and
-sun.reflect.ConstructorAccessorImpl.
-
-<LI> The new reflection implementation can cause class loading to
-occur in previously-unexpected places (namely during reflective
-calls).  This can cause class loaders which contain subtle bugs to
-break.  In general it is not possible to guarantee complete backward
-bug compatibility, but one kind of bug has been observed more than
-once: the inability of a user-defined loader to handle delegation to
-it for a class it has already loaded. The new reflection
-implementation is predicated on delegation working properly, as it
-loads stub classes into newly-fabricated class loaders of type
-sun.reflect.DelegatingClassLoader, one stub class per loader, to allow
-unloading of the stub classes to occur more quickly. To handle this
-kind of bug, the JVM's internal class lookup mechanism must be
-slightly modified to check for instances of
-sun.reflect.DelegatingClassLoader as the incoming class loader and
-silently traverse the "parent" field once for such loaders before
-entering the bulk of the resolution code. This avoids an upcall to
-Java programming language code which certain loaders can not handle.
-
-</OL>
-
-</P>
-<P>
-
-The following JVM entry points may be deleted:
-
-<UL>
-<LI> JVM_GetClassFields
-<LI> JVM_GetClassMethods
-<LI> JVM_GetClassConstructors
-<LI> JVM_GetClassField
-<LI> JVM_GetClassMethod
-<LI> JVM_GetClassConstructor
-<LI> JVM_NewInstance
-<LI> JVM_GetField
-<LI> JVM_GetPrimitiveField
-<LI> JVM_SetField
-<LI> JVM_SetPrimitiveField
-</UL>
-
-</P>
-<P>
-
-To keep using the previous reflection implementation, licensees should
-not take changes from Sun's JDK 1.4 relating specifically to the
-implementation of reflection in the following classes/methods and
-any associated native code:
-
-<UL>
-<LI> java.lang.Class.newInstance0
-<LI> java.lang.Class.getClassLoader0
-<LI> java.lang.Class.getFields
-<LI> java.lang.Class.getMethods
-<LI> java.lang.Class.getDeclaredFields
-<LI> java.lang.Class.getDeclaredMethods
-<LI> java.lang.Class.getFields0
-<LI> java.lang.Class.getMethods0
-<LI> java.lang.Class.getConstructors0
-<LI> java.lang.Class.getField0
-<LI> java.lang.Class.getMethod0
-<LI> java.lang.Class.getConstructor0
-<LI> java.lang.ClassLoader.getCallerClassLoader
-<LI> java.lang.System.getCallerClass
-<LI> java.lang.reflect.AccessibleObject
-<LI> java.lang.reflect.Constructor
-<LI> java.lang.reflect.Field
-<LI> java.lang.reflect.Method
-<LI> java.lang.reflect.Modifier
-<LI> sun.misc.ClassReflector
-</UL>
-
-</P>
-</HTML>
--- a/src/java.base/share/classes/sun/security/provider/PolicyFile.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/classes/sun/security/provider/PolicyFile.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -278,7 +278,6 @@
     private boolean constructed = false;
 
     private boolean expandProperties = true;
-    private boolean ignoreIdentityScope = true;
     private boolean allowSystemProperties = true;
     private boolean notUtf8 = false;
     private URL url;
@@ -415,8 +414,6 @@
             public String run() {
                 expandProperties = "true".equalsIgnoreCase
                     (Security.getProperty("policy.expandProperties"));
-                ignoreIdentityScope = "true".equalsIgnoreCase
-                    (Security.getProperty("policy.ignoreIdentityScope"));
                 allowSystemProperties = "true".equalsIgnoreCase
                     (Security.getProperty("policy.allowSystemProperty"));
                 notUtf8 = "false".equalsIgnoreCase
@@ -1206,31 +1203,6 @@
             addPermissions(perms, cs, principals, entry);
         }
 
-        // Go through policyEntries gotten from identity db; sync required
-        // because checkForTrustedIdentity (below) might update list
-        synchronized (pi.identityPolicyEntries) {
-            for (PolicyEntry entry : pi.identityPolicyEntries) {
-                addPermissions(perms, cs, principals, entry);
-            }
-        }
-
-        // now see if any of the keys are trusted ids.
-        if (!ignoreIdentityScope) {
-            Certificate certs[] = cs.getCertificates();
-            if (certs != null) {
-                for (int k=0; k < certs.length; k++) {
-                    Object idMap = pi.aliasMapping.get(certs[k]);
-                    if (idMap == null &&
-                        checkForTrustedIdentity(certs[k], pi)) {
-                        // checkForTrustedIdentity added it
-                        // to the policy for us. next time
-                        // around we'll find it. This time
-                        // around we need to add it.
-                        perms.add(SecurityConstants.ALL_PERMISSION);
-                    }
-                }
-            }
-        }
         return perms;
     }
 
@@ -1620,7 +1592,7 @@
      * associated with the given code source.
      *
      * The signer certificates are those certificates that were used
-     * to verifysigned code originating from the codesource location.
+     * to verify signed code originating from the codesource location.
      *
      * This method assumes that in the given code source, each signer
      * certificate is followed by its supporting certificate chain
@@ -1917,17 +1889,6 @@
     }
 
     /**
-     * Checks public key. If it is marked as trusted in
-     * the identity database, add it to the policy
-     * with the AllPermission.
-     */
-    private boolean checkForTrustedIdentity(final Certificate cert,
-        PolicyInfo myInfo)
-    {
-        return false;
-    }
-
-    /**
      * Each entry in the policy configuration file is represented by a
      * PolicyEntry object.  <p>
      *
@@ -2282,10 +2243,6 @@
         // Stores grant entries in the policy
         final List<PolicyEntry> policyEntries;
 
-        // Stores grant entries gotten from identity database
-        // Use separate lists to avoid sync on policyEntries
-        final List<PolicyEntry> identityPolicyEntries;
-
         // Maps aliases to certs
         final Map<Object, Object> aliasMapping;
 
@@ -2295,8 +2252,6 @@
 
         PolicyInfo(int numCaches) {
             policyEntries = new ArrayList<>();
-            identityPolicyEntries =
-                Collections.synchronizedList(new ArrayList<PolicyEntry>(2));
             aliasMapping = Collections.synchronizedMap(new HashMap<>(11));
 
             pdMapping = new ProtectionDomainCache[numCaches];
--- a/src/java.base/share/conf/security/java.security	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/conf/security/java.security	Thu May 28 16:51:18 2015 -0700
@@ -179,7 +179,8 @@
 
 # whether or not we look into the IdentityScope for trusted Identities
 # when encountering a 1.1 signed JAR file. If the identity is found
-# and is trusted, we grant it AllPermission.
+# and is trusted, we grant it AllPermission. Note: the default policy
+# provider (sun.security.provider.PolicyFile) does not support this property.
 policy.ignoreIdentityScope=false
 
 #
--- a/src/java.base/share/native/launcher/defines.h	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/native/launcher/defines.h	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -46,6 +46,7 @@
 
 
 #ifdef JAVA_ARGS
+#define HAS_JAVA_ARGS JNI_TRUE
 static const char* const_progname = "java";
 static const char* const_jargs[] = JAVA_ARGS;
 /*
@@ -58,6 +59,7 @@
 #endif /* APP_CLASSPATH */
 static const char* const_appclasspath[] = APP_CLASSPATH;
 #else  /* !JAVA_ARGS */
+#define HAS_JAVA_ARGS JNI_FALSE
 #ifdef PROGNAME
 static const char* const_progname = PROGNAME;
 #else
--- a/src/java.base/share/native/launcher/main.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/native/launcher/main.c	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -129,6 +129,6 @@
                    DOT_VERSION,
                    (const_progname != NULL) ? const_progname : *margv,
                    (const_launcher != NULL) ? const_launcher : *margv,
-                   (const_jargs != NULL) ? JNI_TRUE : JNI_FALSE,
+                   HAS_JAVA_ARGS,
                    const_cpwildcard, const_javaw, const_ergo_class);
 }
--- a/src/java.base/share/native/libjava/FileInputStream.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/native/libjava/FileInputStream.c	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,9 @@
  * questions.
  */
 
+#include <fcntl.h>
+#include <limits.h>
+
 #include "jni.h"
 #include "jni_util.h"
 #include "jlong.h"
@@ -32,9 +35,6 @@
 
 #include "java_io_FileInputStream.h"
 
-#include <fcntl.h>
-#include <limits.h>
-
 #include "io_util_md.h"
 
 /*******************************************************************/
--- a/src/java.base/share/native/libjava/System.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/native/libjava/System.c	Thu May 28 16:51:18 2015 -0700
@@ -111,7 +111,7 @@
 #ifndef VENDOR /* Third party may overwrite this. */
 #define VENDOR "Oracle Corporation"
 #define VENDOR_URL "http://java.oracle.com/"
-#define VENDOR_URL_BUG "http://bugreport.sun.com/bugreport/"
+#define VENDOR_URL_BUG "http://bugreport.java.com/bugreport/"
 #endif
 
 #define JAVA_MAX_SUPPORTED_VERSION 52
--- a/src/java.base/share/native/libjava/jdk_util.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/native/libjava/jdk_util.c	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -58,9 +58,9 @@
     /* If the JDK_BUILD_NUMBER is of format bXX and XX is an integer
      * XX is the jdk_build_number.
      */
-    int len = strlen(jdk_build_string);
+    size_t len = strlen(jdk_build_string);
     if (jdk_build_string[0] == 'b' && len >= 2) {
-        int i = 0;
+        size_t i = 0;
         for (i = 1; i < len; i++) {
             if (isdigit(jdk_build_string[i])) {
                 build_number[i-1] = jdk_build_string[i];
@@ -76,7 +76,7 @@
         }
     }
 
-    assert(jdk_build_number >= 0 && jdk_build_number <= 255);
+    assert(jdk_build_number <= 255);
 
     if (strlen(jdk_update_string) == 2 || strlen(jdk_update_string) == 3) {
         if (isdigit(jdk_update_string[0]) && isdigit(jdk_update_string[1])) {
--- a/src/java.base/share/native/libjava/jni_util.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/share/native/libjava/jni_util.c	Thu May 28 16:51:18 2015 -0700
@@ -157,7 +157,7 @@
                              const char *defaultDetail)
 {
     char buf[256];
-    int n = getLastErrorString(buf, sizeof(buf));
+    size_t n = getLastErrorString(buf, sizeof(buf));
 
     if (n > 0) {
         jstring s = JNU_NewStringPlatform(env, buf);
@@ -448,7 +448,7 @@
 static jstring
 newString646_US(JNIEnv *env, const char *str)
 {
-    int len = strlen(str);
+    int len = (int)strlen(str);
     jchar buf[512];
     jchar *str1;
     jstring result;
--- a/src/java.base/unix/native/libjava/ProcessImpl_md.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/unix/native/libjava/ProcessImpl_md.c	Thu May 28 16:51:18 2015 -0700
@@ -286,12 +286,14 @@
         (*env)->ReleaseByteArrayElements(env, arr, (jbyte*) parr, JNI_ABORT);
 }
 
+#define IOE_FORMAT "error=%d, %s"
+
 static void
 throwIOException(JNIEnv *env, int errnum, const char *defaultDetail)
 {
-    static const char * const format = "error=%d, %s";
     const char *detail = defaultDetail;
     char *errmsg;
+    size_t fmtsize;
     jstring s;
 
     if (errnum != 0) {
@@ -300,11 +302,12 @@
             detail = s;
     }
     /* ASCII Decimal representation uses 2.4 times as many bits as binary. */
-    errmsg = NEW(char, strlen(format) + strlen(detail) + 3 * sizeof(errnum));
+    fmtsize = sizeof(IOE_FORMAT) + strlen(detail) + 3 * sizeof(errnum);
+    errmsg = NEW(char, fmtsize);
     if (errmsg == NULL)
         return;
 
-    sprintf(errmsg, format, errnum, detail);
+    snprintf(errmsg, fmtsize, IOE_FORMAT, errnum, detail);
     s = JNU_NewStringPlatform(env, errmsg);
     if (s != NULL) {
         jobject x = JNU_NewObjectByName(env, "java/io/IOException",
--- a/src/java.base/unix/native/libjava/TimeZone_md.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/unix/native/libjava/TimeZone_md.c	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -735,10 +735,10 @@
     local_tm = localtime(&clock);
     if (local_tm->tm_gmtoff >= 0) {
         offset = (time_t) local_tm->tm_gmtoff;
-        sign = "+";
+        sign = '+';
     } else {
         offset = (time_t) -local_tm->tm_gmtoff;
-        sign = "-";
+        sign = '-';
     }
     sprintf(buf, (const char *)"GMT%c%02d:%02d",
             sign, (int)(offset/3600), (int)((offset%3600)/60));
--- a/src/java.base/windows/native/libjava/ConcurrentPReader_md.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/windows/native/libjava/ConcurrentPReader_md.c	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
     DWORD nread;
     BOOL result;
 
-    jlong handle = (*env)->GetLongField(env, fdo, handle_fdID);
+    HANDLE handle = (HANDLE)(*env)->GetLongField(env, fdo, handle_fdID);
     void *buf = (void *)jlong_to_ptr(address);
 
     ZeroMemory(&ov, sizeof(ov));
--- a/src/java.base/windows/native/libjava/ProcessImpl_md.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/windows/native/libjava/ProcessImpl_md.c	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -90,7 +90,7 @@
             CP_UTF8,
             0,
             utf16_javaMessage,
-            n, /*by creation n <= MESSAGE_LENGTH*/
+            (int)n, /*by creation n <= MESSAGE_LENGTH*/
             utf8_javaMessage,
             MESSAGE_LENGTH*2,
             NULL,
--- a/src/java.base/windows/native/libjava/java_props_md.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/windows/native/libjava/java_props_md.c	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -345,6 +345,8 @@
     return TRUE;
 }
 
+// GetVersionEx is deprecated; disable the warning until a replacement is found
+#pragma warning(disable : 4996)
 java_props_t *
 GetJavaProperties(JNIEnv* env)
 {
@@ -680,5 +682,5 @@
 jstring
 GetStringPlatform(JNIEnv *env, nchar* wcstr)
 {
-    return (*env)->NewString(env, wcstr, wcslen(wcstr));
+    return (*env)->NewString(env, wcstr, (jsize)wcslen(wcstr));
 }
--- a/src/java.base/windows/native/libjava/jni_util_md.c	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.base/windows/native/libjava/jni_util_md.c	Thu May 28 16:51:18 2015 -0700
@@ -124,9 +124,9 @@
                         CP_UTF8,
                         0,
                         utf16_osErrorMsg,
-                        n,
+                        (int)n,
                         utf8_jvmErrorMsg,
-                        cbErrorMsg,
+                        (int)cbErrorMsg,
                         NULL,
                         NULL);
 
--- a/src/java.corba/share/classes/com/sun/jndi/cosnaming/CNCtx.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.corba/share/classes/com/sun/jndi/cosnaming/CNCtx.java	Thu May 28 16:51:18 2015 -0700
@@ -1040,7 +1040,7 @@
 
     /**
       * Allow access to the name parser object.
-      * @param String JNDI name, is ignored since there is only one Name
+      * @param name JNDI name, is ignored since there is only one Name
       * Parser object.
       * @exception NamingException --
       * @return NameParser object
@@ -1051,7 +1051,7 @@
 
     /**
       * Allow access to the name parser object.
-      * @param Name JNDI name, is ignored since there is only one Name
+      * @param name JNDI name, is ignored since there is only one Name
       * Parser object.
       * @exception NamingException --
       * @return NameParser object
@@ -1088,7 +1088,7 @@
       * Record change but do not reinitialize ORB.
       *
       * @param propName The property name.
-      * @param propVal  The ORB.
+      * @param propValue The ORB.
       * @return the previous value of this property if any.
       */
     @SuppressWarnings("unchecked")
--- a/src/java.corba/share/classes/com/sun/jndi/cosnaming/CorbanameUrl.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.corba/share/classes/com/sun/jndi/cosnaming/CorbanameUrl.java	Thu May 28 16:51:18 2015 -0700
@@ -35,32 +35,36 @@
  * Extract components of a "corbaname" URL.
  *
  * The format of an corbaname URL is defined in INS 99-12-03 as follows.
- *<p>
+ * <pre>{@code
  * corbaname url = "corbaname:" <corbaloc_obj> ["#" <string_name>]
  * corbaloc_obj  = <obj_addr_list> ["/" <key_string>]
  * obj_addr_list = as defined in a corbaloc URL
  * key_string    = as defined in a corbaloc URL
  * string_name   = stringified COS name | empty_string
- *<p>
- * Characters in <string_name> are escaped as follows.
+ * }</pre>
+ * Characters in {@code <string_name>} are escaped as follows.
  * US-ASCII alphanumeric characters are not escaped. Any characters outside
  * of this range are escaped except for the following:
+ * <pre>{@code
  *        ; / : ? @ & = + $ , - _ . ! ~ * ; ( )
+ * }</pre>
  * Escaped characters is escaped by using a % followed by its 2 hexadecimal
  * numbers representing the octet.
- *<p>
+ * <p>
  * The corbaname URL is parsed into two parts: a corbaloc URL and a COS name.
- * The corbaloc URL is constructed by concatenation "corbaloc:" with
- * <corbaloc_obj>.
- * The COS name is <string_name> with the escaped characters resolved.
- *<p>
+ * The corbaloc URL is constructed by concatenation {@code "corbaloc:"} with
+ * {@code <corbaloc_obj>}.
+ * The COS name is {@code <string_name>} with the escaped characters resolved.
+ * <p>
  * A corbaname URL is resolved by:
- *<ol>
- *<li>Construct a corbaloc URL by concatenating "corbaloc:" and <corbaloc_obj>.
- *<li>Resolve the corbaloc URL to a NamingContext by using
+ * <ol>
+ * <li>Construct a corbaloc URL by concatenating {@code "corbaloc:"} and {@code <corbaloc_obj>}.
+ * <li>Resolve the corbaloc URL to a NamingContext by using
+ * <pre>{@code
  *     nctx = ORB.string_to_object(corbalocUrl);
- *<li>Resolve <string_name> in the NamingContext.
- *</ol>
+ * }</pre>
+ * <li>Resolve {@code <string_name>} in the NamingContext.
+ * </ol>
  *
  * @author Rosanna Lee
  */
--- a/src/java.corba/share/classes/com/sun/jndi/cosnaming/IiopUrl.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.corba/share/classes/com/sun/jndi/cosnaming/IiopUrl.java	Thu May 28 16:51:18 2015 -0700
@@ -38,6 +38,7 @@
  *
  * The format of an iiopname URL is defined in INS 98-10-11 as follows:
  *
+ * <pre>
  * iiopname url = "iiopname://" [addr_list]["/" string_name]
  * addr_list    = [address ","]* address
  * address      = [version host [":" port]]
@@ -46,19 +47,23 @@
  * port         = number
  * major        = number
  * minor        = number
- * string_name = stringified name | empty_string
+ * string_name  = stringified name | empty_string
+ * </pre>
  *
  * The default port is 9999. The default version is "1.0"
  * US-ASCII alphanumeric characters are not escaped. Any characters outside
  * of this range are escaped except for the following:
+ * <pre>{@code
  * ; / : ? : @ & = + $ , - _ . ! ~ *  ' ( )
+ * }</pre>
  * Escaped characters is escaped by using a % followed by its 2 hexadecimal
  * numbers representing the octet.
  *
  * For backward compatibility,  the "iiop" URL as defined in INS 97-6-6
  * is also supported:
- *
+ * <pre>{@code
  * iiop url     = "iiop://" [host [":" port]] ["/" string_name]
+ * }</pre>
  * The default port is 900.
  *
  * @author Rosanna Lee
--- a/src/java.corba/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.corba/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java	Thu May 28 16:51:18 2015 -0700
@@ -56,7 +56,7 @@
       * object by using the javax.rmi.CORBA package.
       *<p>
       * This method effective does the following:
-      *<blockquote><pre>
+      * <blockquote><pre>
       * java.lang.Object stub;
       * try {
       *     stub = PortableRemoteObject.toStub(remoteObj);
@@ -72,6 +72,7 @@
       *     // ignore 'already connected' error
       * }
       * return (javax.rmi.CORBA.Stub)stub;
+      * </pre></blockquote>
       *
       * @param remoteObj The non-null remote object for
       * @param orb       The non-null ORB to connect the remote object to
--- a/src/java.management/share/classes/sun/management/Agent.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.management/share/classes/sun/management/Agent.java	Thu May 28 16:51:18 2015 -0700
@@ -345,6 +345,7 @@
 
         if (jmxServer != null) {
             ConnectorBootstrap.unexportRegistry();
+            ConnectorAddressLink.unexportRemote();
 
             // Attempt to stop already stopped agent
             // Don't cause any errors.
--- a/src/java.management/share/classes/sun/management/ConnectorAddressLink.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.management/share/classes/sun/management/ConnectorAddressLink.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -45,9 +46,26 @@
  * @since 1.5
  */
 public class ConnectorAddressLink {
+    /**
+     * A simple wrapper for the perf-counter backing {@linkplain ByteBuffer}
+     */
+    private static final class PerfHandle {
+        private ByteBuffer bb;
+
+        private PerfHandle(ByteBuffer bb) {
+            this.bb = bb.order(ByteOrder.nativeOrder());
+        }
+
+        private void putLong(long l) {
+            this.bb = bb.clear();
+            this.bb.asLongBuffer().put(l);
+        }
+    }
 
     private static final String CONNECTOR_ADDRESS_COUNTER =
             "sun.management.JMXConnectorServer.address";
+    private static final String REMOTE_CONNECTOR_STATE_COUNTER =
+            "sun.management.JMXConnectorServer.remote.enabled";
 
     /*
      * The format of the jvmstat counters representing the properties of
@@ -78,7 +96,9 @@
      * JMX remote connector counter (it will be incremented every
      * time a new out-of-the-box JMX remote connector is created).
      */
-    private static AtomicInteger counter = new AtomicInteger();
+    private static final AtomicInteger counter = new AtomicInteger();
+
+    private static PerfHandle remotePerfHandle = null;
 
     /**
      * Exports the specified connector address to the instrumentation buffer
@@ -93,7 +113,17 @@
         }
         Perf perf = Perf.getPerf();
         perf.createString(
-                CONNECTOR_ADDRESS_COUNTER, 1, Units.STRING.intValue(), address);
+            CONNECTOR_ADDRESS_COUNTER, 1, Units.STRING.intValue(), address);
+    }
+
+    public static void unexportRemote() {
+        unexport(remotePerfHandle);
+    }
+
+    private static void unexport(PerfHandle ph) {
+        if (ph != null) {
+            ph.putLong(-1L);
+        }
     }
 
     /**
@@ -143,6 +173,13 @@
             perf.createString(REMOTE_CONNECTOR_COUNTER_PREFIX + index + "." +
                     entry.getKey(), 1, Units.STRING.intValue(), entry.getValue());
         }
+        if (remotePerfHandle != null) {
+            remotePerfHandle.putLong(index);
+        } else {
+            remotePerfHandle = new PerfHandle(
+                perf.createLong(REMOTE_CONNECTOR_STATE_COUNTER, 1, Units.NONE.intValue(), (long)index)
+            );
+        }
     }
 
     /**
--- a/src/java.prefs/windows/classes/java/util/prefs/WindowsPreferences.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.prefs/windows/classes/java/util/prefs/WindowsPreferences.java	Thu May 28 16:51:18 2015 -0700
@@ -1013,7 +1013,6 @@
      * description of the encoding algorithm.
      */
      private static String toJavaValueString(byte[] windowsNameArray) {
-        // Use modified native2ascii algorithm
         String windowsName = byteArrayToString(windowsNameArray);
         StringBuilder javaName = new StringBuilder();
         char ch;
@@ -1055,8 +1054,7 @@
      * Encoding algorithm adds "/" character to capital letters, i.e.
      * "A" is encoded as "/A". Character '\' is encoded as '//',
      * '/' is encoded as  '\'.
-     * Then encoding scheme similar to jdk's native2ascii converter is used
-     * to convert java string to a byte array of ASCII characters.
+     * Then convert java string to a byte array of ASCII characters.
      */
     private static byte[] toWindowsValueString(String javaName) {
         StringBuilder windowsName = new StringBuilder();
--- a/src/java.scripting/share/classes/javax/script/ScriptEngine.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.scripting/share/classes/javax/script/ScriptEngine.java	Thu May 28 16:51:18 2015 -0700
@@ -132,7 +132,9 @@
      *
      * @return The value returned from the execution of the script.
      *
-     * @throws ScriptException if an error occurs in script.
+     * @throws ScriptException if an error occurs in script. ScriptEngines should create and throw
+     * <code>ScriptException</code> wrappers for checked Exceptions thrown by underlying scripting
+     * implementations.
      * @throws NullPointerException if either argument is null.
      */
     public Object eval(Reader reader , ScriptContext context) throws ScriptException;
@@ -145,7 +147,9 @@
      *
      * @return The value returned from the execution of the script.
      *
-     * @throws ScriptException if error occurs in script.
+     * @throws ScriptException if an error occurs in script. ScriptEngines should create and throw
+     * <code>ScriptException</code> wrappers for checked Exceptions thrown by underlying scripting
+     * implementations.
      * @throws NullPointerException if the argument is null.
      */
     public Object eval(String script) throws ScriptException;
@@ -158,7 +162,9 @@
      *
      * @return The value returned by the script.
      *
-     * @throws ScriptException if an error occurs in script.
+     * @throws ScriptException if an error occurs in script. ScriptEngines should create and throw
+     * <code>ScriptException</code> wrappers for checked Exceptions thrown by underlying scripting
+     * implementations.
      * @throws NullPointerException if the argument is null.
      */
     public Object eval(Reader reader) throws ScriptException;
@@ -177,7 +183,9 @@
      *
      * @return The value returned by the script.
      *
-     * @throws ScriptException if an error occurs in script.
+     * @throws ScriptException if an error occurs in script. ScriptEngines should create and throw
+     * <code>ScriptException</code> wrappers for checked Exceptions thrown by underlying scripting
+     * implementations.
      * @throws NullPointerException if either argument is null.
      */
     public Object eval(String script, Bindings n) throws ScriptException;
@@ -191,7 +199,9 @@
      *
      * @return The value returned by the script.
      *
-     * @throws ScriptException if an error occurs.
+     * @throws ScriptException if an error occurs in script. ScriptEngines should create and throw
+     * <code>ScriptException</code> wrappers for checked Exceptions thrown by underlying scripting
+     * implementations.
      * @throws NullPointerException if either argument is null.
      */
     public Object eval(Reader reader , Bindings n) throws ScriptException;
--- a/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5AcceptCredential.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5AcceptCredential.java	Thu May 28 16:51:18 2015 -0700
@@ -85,7 +85,7 @@
 
         if (creds == null)
             throw new GSSException(GSSException.NO_CRED, -1,
-                                   "Failed to find any Kerberos credentails");
+                                   "Failed to find any Kerberos credentials");
 
         if (name == null) {
             String fullName = creds.getName();
--- a/src/java.security.jgss/share/classes/sun/security/krb5/Config.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/Config.java	Thu May 28 16:51:18 2015 -0700
@@ -110,8 +110,10 @@
      * java.security.krb5.kdc not specified, error reading configuration file.
      */
 
-    public static synchronized void refresh() throws KrbException {
-        singleton = new Config();
+    public static void refresh() throws KrbException {
+        synchronized (Config.class) {
+            singleton = new Config();
+        }
         KdcComm.initStatic();
         EType.initStatic();
         Checksum.initStatic();
--- a/src/java.sql.rowset/share/classes/com/sun/rowset/CachedRowSetImpl.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.sql.rowset/share/classes/com/sun/rowset/CachedRowSetImpl.java	Thu May 28 16:51:18 2015 -0700
@@ -1059,7 +1059,7 @@
      * (<code>acceptChanges</code>) or population. This method may also be called
      * while performing updates to the insert row.
      * <P>
-     * <code>undoUpdate</code may be called at any time during the life-time of a
+     * {@code undoUpdate} may be called at any time during the life-time of a
      * rowset, however after a synchronization has occurs this method has no
      * affect until further modification to the RowSet data occurs.
      *
@@ -2467,10 +2467,11 @@
      * @throws SQLException if (1) the given column name is not the name of
      * a column in this rowset, (2) the cursor is not on one of
      * this rowset's rows or its insert row, or (3) the designated
-     * column does not store an SQL <code>TINYINT, SMALLINT, INTEGER
-     * BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, <b>CHAR</b>,
-     * <b>VARCHAR</b></code> or <code>LONGVARCHAR<</code> value. The bold SQL type
-     * designates the recommended return type.
+     * column does not store an SQL {@code TINYINT, SMALLINT, INTEGER
+     * BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, }
+     * <b>{@code CHAR, VARCHAR}</b> or
+     * <b>{@code LONGVARCHAR}</b> value.
+     * The bold SQL type designates the recommended return type.
      */
     public String getString(String columnName) throws SQLException {
         return getString(getColIdxByName(columnName));
@@ -7748,7 +7749,7 @@
      * Updates the designated column with a <code>RowId</code> value. The updater
      * methods are used to update column values in the current row or the insert
      * row. The updater methods do not update the underlying database; instead
-     * the <code>updateRow<code> or <code>insertRow</code> methods are called
+     * the {@code updateRow} or {@code insertRow} methods are called
      * to update the database.
      *
      * @param columnIndex the first column is 1, the second 2, ...
@@ -7764,7 +7765,7 @@
      * Updates the designated column with a <code>RowId</code> value. The updater
      * methods are used to update column values in the current row or the insert
      * row. The updater methods do not update the underlying database; instead
-     * the <code>updateRow<code> or <code>insertRow</code> methods are called
+     * the {@code updateRow} or {@code insertRow} methods are called
      * to update the database.
      *
      * @param columnName the name of the column
--- a/src/java.sql.rowset/share/classes/com/sun/rowset/internal/CachedRowSetWriter.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.sql.rowset/share/classes/com/sun/rowset/internal/CachedRowSetWriter.java	Thu May 28 16:51:18 2015 -0700
@@ -182,7 +182,7 @@
     private CachedRowSetImpl crsResolve;
 
 /**
- * This <code>ArrayList<code> will hold the values of SyncResolver.*
+ * This {@code ArrayList} will hold the values of SyncResolver.*
  */
     private ArrayList<Integer> status;
 
--- a/src/java.sql/share/classes/java/sql/Blob.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.sql/share/classes/java/sql/Blob.java	Thu May 28 16:51:18 2015 -0700
@@ -29,29 +29,28 @@
 
 /**
  * The representation (mapping) in
- * the Java&trade; programming
- * language of an SQL
- * <code>BLOB</code> value.  An SQL <code>BLOB</code> is a built-in type
+ * the Java&trade; programming language of an SQL
+ * {@code BLOB} value.  An SQL {@code BLOB} is a built-in type
  * that stores a Binary Large Object as a column value in a row of
- * a database table. By default drivers implement <code>Blob</code> using
- * an SQL <code>locator(BLOB)</code>, which means that a
- * <code>Blob</code> object contains a logical pointer to the
- * SQL <code>BLOB</code> data rather than the data itself.
- * A <code>Blob</code> object is valid for the duration of the
+ * a database table. By default drivers implement {@code Blob} using
+ * an SQL {@code locator(BLOB)}, which means that a
+ * {@code Blob} object contains a logical pointer to the
+ * SQL {@code BLOB} data rather than the data itself.
+ * A {@code Blob} object is valid for the duration of the
  * transaction in which is was created.
  *
  * <P>Methods in the interfaces {@link ResultSet},
  * {@link CallableStatement}, and {@link PreparedStatement}, such as
- * <code>getBlob</code> and <code>setBlob</code> allow a programmer to
- * access an SQL <code>BLOB</code> value.
- * The <code>Blob</code> interface provides methods for getting the
- * length of an SQL <code>BLOB</code> (Binary Large Object) value,
- * for materializing a <code>BLOB</code> value on the client, and for
+ * {@code getBlob} and {@code setBlob} allow a programmer to
+ * access an SQL {@code BLOB} value.
+ * The {@code Blob} interface provides methods for getting the
+ * length of an SQL {@code BLOB} (Binary Large Object) value,
+ * for materializing a {@code BLOB} value on the client, and for
  * determining the position of a pattern of bytes within a
- * <code>BLOB</code> value. In addition, this interface has methods for updating
- * a <code>BLOB</code> value.
+ * {@code BLOB} value. In addition, this interface has methods for updating
+ * a {@code BLOB} value.
  * <p>
- * All methods on the <code>Blob</code> interface must be fully implemented if the
+ * All methods on the {@code Blob} interface must be fully implemented if the
  * JDBC driver supports the data type.
  *
  * @since 1.2
@@ -60,51 +59,52 @@
 public interface Blob {
 
   /**
-   * Returns the number of bytes in the <code>BLOB</code> value
-   * designated by this <code>Blob</code> object.
-   * @return length of the <code>BLOB</code> in bytes
+   * Returns the number of bytes in the {@code BLOB} value
+   * designated by this {@code Blob} object.
+   *
+   * @return length of the {@code BLOB} in bytes
    * @exception SQLException if there is an error accessing the
-   * length of the <code>BLOB</code>
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            length of the {@code BLOB}
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @since 1.2
    */
   long length() throws SQLException;
 
   /**
-   * Retrieves all or part of the <code>BLOB</code>
-   * value that this <code>Blob</code> object represents, as an array of
-   * bytes.  This <code>byte</code> array contains up to <code>length</code>
-   * consecutive bytes starting at position <code>pos</code>.
+   * Retrieves all or part of the {@code BLOB}
+   * value that this {@code Blob} object represents, as an array of
+   * bytes.  This {@code byte} array contains up to {@code length}
+   * consecutive bytes starting at position {@code pos}.
    *
    * @param pos the ordinal position of the first byte in the
-   *        <code>BLOB</code> value to be extracted; the first byte is at
+   *        {@code BLOB} value to be extracted; the first byte is at
    *        position 1
    * @param length the number of consecutive bytes to be copied; the value
-   * for length must be 0 or greater
-   * @return a byte array containing up to <code>length</code>
-   *         consecutive bytes from the <code>BLOB</code> value designated
-   *         by this <code>Blob</code> object, starting with the
-   *         byte at position <code>pos</code>
+   *        for length must be 0 or greater
+   * @return a byte array containing up to {@code length}
+   *         consecutive bytes from the {@code BLOB} value designated
+   *         by this {@code Blob} object, starting with the
+   *         byte at position {@code pos}
    * @exception SQLException if there is an error accessing the
-   *            <code>BLOB</code> value; if pos is less than 1 or length is
-   * less than 0
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            {@code BLOB} value; if pos is less than 1 or length is
+   *            less than 0
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @see #setBytes
    * @since 1.2
    */
   byte[] getBytes(long pos, int length) throws SQLException;
 
   /**
-   * Retrieves the <code>BLOB</code> value designated by this
-   * <code>Blob</code> instance as a stream.
+   * Retrieves the {@code BLOB} value designated by this
+   * {@code Blob} instance as a stream.
    *
-   * @return a stream containing the <code>BLOB</code> data
+   * @return a stream containing the {@code BLOB} data
    * @exception SQLException if there is an error accessing the
-   *            <code>BLOB</code> value
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            {@code BLOB} value
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @see #setBinaryStream
    * @since 1.2
    */
@@ -112,38 +112,38 @@
 
   /**
    * Retrieves the byte position at which the specified byte array
-   * <code>pattern</code> begins within the <code>BLOB</code>
-   * value that this <code>Blob</code> object represents.  The
-   * search for <code>pattern</code> begins at position
-   * <code>start</code>.
+   * {@code pattern} begins within the {@code BLOB}
+   * value that this {@code Blob} object represents.
+   * The search for {@code pattern} begins at position
+   * {@code start}.
    *
    * @param pattern the byte array for which to search
    * @param start the position at which to begin searching; the
    *        first position is 1
    * @return the position at which the pattern appears, else -1
    * @exception SQLException if there is an error accessing the
-   * <code>BLOB</code> or if start is less than 1
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            {@code BLOB} or if start is less than 1
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @since 1.2
    */
   long position(byte pattern[], long start) throws SQLException;
 
   /**
-   * Retrieves the byte position in the <code>BLOB</code> value
-   * designated by this <code>Blob</code> object at which
-   * <code>pattern</code> begins.  The search begins at position
-   * <code>start</code>.
+   * Retrieves the byte position in the {@code BLOB} value
+   * designated by this {@code Blob} object at which
+   * {@code pattern} begins.  The search begins at position
+   * {@code start}.
    *
-   * @param pattern the <code>Blob</code> object designating
-   * the <code>BLOB</code> value for which to search
-   * @param start the position in the <code>BLOB</code> value
+   * @param pattern the {@code Blob} object designating
+   *        the {@code BLOB} value for which to search
+   * @param start the position in the {@code BLOB} value
    *        at which to begin searching; the first position is 1
    * @return the position at which the pattern begins, else -1
    * @exception SQLException if there is an error accessing the
-   *            <code>BLOB</code> value or if start is less than 1
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            {@code BLOB} value or if start is less than 1
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @since 1.2
    */
   long position(Blob pattern, long start) throws SQLException;
@@ -151,152 +151,155 @@
     // -------------------------- JDBC 3.0 -----------------------------------
 
     /**
-     * Writes the given array of bytes to the <code>BLOB</code> value that
-     * this <code>Blob</code> object represents, starting at position
-     * <code>pos</code>, and returns the number of bytes written.
+     * Writes the given array of bytes to the {@code BLOB} value that
+     * this {@code Blob} object represents, starting at position
+     * {@code pos}, and returns the number of bytes written.
      * The array of bytes will overwrite the existing bytes
-     * in the <code>Blob</code> object starting at the position
-     * <code>pos</code>.  If the end of the <code>Blob</code> value is reached
-     * while writing the array of bytes, then the length of the <code>Blob</code>
+     * in the {@code Blob} object starting at the position
+     * {@code pos}.  If the end of the {@code Blob} value is reached
+     * while writing the array of bytes, then the length of the {@code Blob}
      * value will be increased to accommodate the extra bytes.
      * <p>
-     * <b>Note:</b> If the value specified for <code>pos</code>
-     * is greater then the length+1 of the <code>BLOB</code> value then the
-     * behavior is undefined. Some JDBC drivers may throw a
-     * <code>SQLException</code> while other drivers may support this
+     * <b>Note:</b> If the value specified for {@code pos}
+     * is greater than the length+1 of the {@code BLOB} value then the
+     * behavior is undefined. Some JDBC drivers may throw an
+     * {@code SQLException} while other drivers may support this
      * operation.
      *
-     * @param pos the position in the <code>BLOB</code> object at which
+     * @param pos the position in the {@code BLOB} object at which
      *        to start writing; the first position is 1
-     * @param bytes the array of bytes to be written to the <code>BLOB</code>
-     *        value that this <code>Blob</code> object represents
+     * @param bytes the array of bytes to be written to the {@code BLOB}
+     *        value that this {@code Blob} object represents
      * @return the number of bytes written
      * @exception SQLException if there is an error accessing the
-     *            <code>BLOB</code> value or if pos is less than 1
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     *            {@code BLOB} value or if pos is less than 1
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @see #getBytes
      * @since 1.4
      */
     int setBytes(long pos, byte[] bytes) throws SQLException;
 
     /**
-     * Writes all or part of the given <code>byte</code> array to the
-     * <code>BLOB</code> value that this <code>Blob</code> object represents
+     * Writes all or part of the given {@code byte} array to the
+     * {@code BLOB} value that this {@code Blob} object represents
      * and returns the number of bytes written.
-     * Writing starts at position <code>pos</code> in the <code>BLOB</code>
-     * value; <code>len</code> bytes from the given byte array are written.
+     * Writing starts at position {@code pos} in the {@code BLOB}
+     * value; {@code len} bytes from the given byte array are written.
      * The array of bytes will overwrite the existing bytes
-     * in the <code>Blob</code> object starting at the position
-     * <code>pos</code>.  If the end of the <code>Blob</code> value is reached
-     * while writing the array of bytes, then the length of the <code>Blob</code>
+     * in the {@code Blob} object starting at the position
+     * {@code pos}.  If the end of the {@code Blob} value is reached
+     * while writing the array of bytes, then the length of the {@code Blob}
      * value will be increased to accommodate the extra bytes.
      * <p>
-     * <b>Note:</b> If the value specified for <code>pos</code>
-     * is greater then the length+1 of the <code>BLOB</code> value then the
-     * behavior is undefined. Some JDBC drivers may throw a
-     * <code>SQLException</code> while other drivers may support this
+     * <b>Note:</b> If the value specified for {@code pos}
+     * is greater than the length+1 of the {@code BLOB} value then the
+     * behavior is undefined. Some JDBC drivers may throw an
+     * {@code SQLException} while other drivers may support this
      * operation.
      *
-     * @param pos the position in the <code>BLOB</code> object at which
+     * @param pos the position in the {@code BLOB} object at which
      *        to start writing; the first position is 1
-     * @param bytes the array of bytes to be written to this <code>BLOB</code>
+     * @param bytes the array of bytes to be written to this {@code BLOB}
      *        object
-     * @param offset the offset into the array <code>bytes</code> at which
+     * @param offset the offset into the array {@code bytes} at which
      *        to start reading the bytes to be set
-     * @param len the number of bytes to be written to the <code>BLOB</code>
-     *        value from the array of bytes <code>bytes</code>
+     * @param len the number of bytes to be written to the {@code BLOB}
+     *        value from the array of bytes {@code bytes}
      * @return the number of bytes written
      * @exception SQLException if there is an error accessing the
-     *            <code>BLOB</code> value or if pos is less than 1
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     *            {@code BLOB} value or if pos is less than 1
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @see #getBytes
      * @since 1.4
      */
     int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException;
 
     /**
-     * Retrieves a stream that can be used to write to the <code>BLOB</code>
-     * value that this <code>Blob</code> object represents.  The stream begins
-     * at position <code>pos</code>.
+     * Retrieves a stream that can be used to write to the {@code BLOB}
+     * value that this {@code Blob} object represents.  The stream begins
+     * at position {@code pos}.
      * The  bytes written to the stream will overwrite the existing bytes
-     * in the <code>Blob</code> object starting at the position
-     * <code>pos</code>.  If the end of the <code>Blob</code> value is reached
-     * while writing to the stream, then the length of the <code>Blob</code>
+     * in the {@code Blob} object starting at the position
+     * {@code pos}.  If the end of the {@code Blob} value is reached
+     * while writing to the stream, then the length of the {@code Blob}
      * value will be increased to accommodate the extra bytes.
      * <p>
-     * <b>Note:</b> If the value specified for <code>pos</code>
-     * is greater then the length+1 of the <code>BLOB</code> value then the
-     * behavior is undefined. Some JDBC drivers may throw a
-     * <code>SQLException</code> while other drivers may support this
+     * <b>Note:</b> If the value specified for {@code pos}
+     * is greater than the length+1 of the {@code BLOB} value then the
+     * behavior is undefined. Some JDBC drivers may throw an
+     * {@code SQLException} while other drivers may support this
      * operation.
      *
-     * @param pos the position in the <code>BLOB</code> value at which
+     * @param pos the position in the {@code BLOB} value at which
      *        to start writing; the first position is 1
-     * @return a <code>java.io.OutputStream</code> object to which data can
+     * @return a {@code java.io.OutputStream} object to which data can
      *         be written
      * @exception SQLException if there is an error accessing the
-     *            <code>BLOB</code> value or if pos is less than 1
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     *            {@code BLOB} value or if pos is less than 1
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @see #getBinaryStream
      * @since 1.4
      */
     java.io.OutputStream setBinaryStream(long pos) throws SQLException;
 
     /**
-     * Truncates the <code>BLOB</code> value that this <code>Blob</code>
-     * object represents to be <code>len</code> bytes in length.
+     * Truncates the {@code BLOB} value that this {@code Blob}
+     * object represents to be {@code len} bytes in length.
      * <p>
-     * <b>Note:</b> If the value specified for <code>pos</code>
-     * is greater then the length+1 of the <code>BLOB</code> value then the
-     * behavior is undefined. Some JDBC drivers may throw a
-     * <code>SQLException</code> while other drivers may support this
+     * <b>Note:</b> If the value specified for {@code pos}
+     * is greater than the length+1 of the {@code BLOB} value then the
+     * behavior is undefined. Some JDBC drivers may throw an
+     * {@code SQLException} while other drivers may support this
      * operation.
      *
-     * @param len the length, in bytes, to which the <code>BLOB</code> value
-     *        that this <code>Blob</code> object represents should be truncated
+     * @param len the length, in bytes, to which the {@code BLOB} value
+     *        that this {@code Blob} object represents should be truncated
      * @exception SQLException if there is an error accessing the
-     *            <code>BLOB</code> value or if len is less than 0
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     *            {@code BLOB} value or if len is less than 0
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @since 1.4
      */
     void truncate(long len) throws SQLException;
 
     /**
-     * This method frees the <code>Blob</code> object and releases the resources that
-     * it holds. The object is invalid once the <code>free</code>
+     * This method frees the {@code Blob} object and releases the resources that
+     * it holds. The object is invalid once the {@code free}
      * method is called.
      * <p>
-     * After <code>free</code> has been called, any attempt to invoke a
-     * method other than <code>free</code> will result in a <code>SQLException</code>
-     * being thrown.  If <code>free</code> is called multiple times, the subsequent
-     * calls to <code>free</code> are treated as a no-op.
+     * After {@code free} has been called, any attempt to invoke a
+     * method other than {@code free} will result in an {@code SQLException}
+     * being thrown.  If {@code free} is called multiple times, the subsequent
+     * calls to {@code free} are treated as a no-op.
      *
      * @throws SQLException if an error occurs releasing
-     * the Blob's resources
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     *         the Blob's resources
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @since 1.6
      */
     void free() throws SQLException;
 
     /**
-     * Returns an <code>InputStream</code> object that contains a partial <code>Blob</code> value,
-     * starting  with the byte specified by pos, which is length bytes in length.
+     * Returns an {@code InputStream} object that contains
+     * a partial {@code Blob} value, starting with the byte
+     * specified by pos, which is length bytes in length.
      *
-     * @param pos the offset to the first byte of the partial value to be retrieved.
-     *  The first byte in the <code>Blob</code> is at position 1
+     * @param pos the offset to the first byte of the partial value to be
+     *        retrieved. The first byte in the {@code Blob} is at position 1.
      * @param length the length in bytes of the partial value to be retrieved
-     * @return <code>InputStream</code> through which the partial <code>Blob</code> value can be read.
-     * @throws SQLException if pos is less than 1 or if pos is greater than the number of bytes
-     * in the <code>Blob</code> or if pos + length is greater than the number of bytes
-     * in the <code>Blob</code>
+     * @return {@code InputStream} through which
+     *         the partial {@code Blob} value can be read.
+     * @throws SQLException if pos is less than 1 or if pos is greater
+     *         than the number of bytes in the {@code Blob} or if
+     *         pos + length is greater than the number of bytes
+     *         in the {@code Blob}
      *
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @since 1.6
      */
     InputStream getBinaryStream(long pos, long length) throws SQLException;
--- a/src/java.sql/share/classes/java/sql/Clob.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.sql/share/classes/java/sql/Clob.java	Thu May 28 16:51:18 2015 -0700
@@ -29,28 +29,28 @@
 
 /**
  * The mapping in the Java&trade; programming language
- * for the SQL <code>CLOB</code> type.
- * An SQL <code>CLOB</code> is a built-in type
+ * for the SQL {@code CLOB} type.
+ * An SQL {@code CLOB} is a built-in type
  * that stores a Character Large Object as a column value in a row of
  * a database table.
- * By default drivers implement a <code>Clob</code> object using an SQL
- * <code>locator(CLOB)</code>, which means that a <code>Clob</code> object
- * contains a logical pointer to the SQL <code>CLOB</code> data rather than
- * the data itself. A <code>Clob</code> object is valid for the duration
+ * By default drivers implement a {@code Clob} object using an SQL
+ * {@code locator(CLOB)}, which means that a {@code Clob} object
+ * contains a logical pointer to the SQL {@code CLOB} data rather than
+ * the data itself. A {@code Clob} object is valid for the duration
  * of the transaction in which it was created.
- * <P>The <code>Clob</code> interface provides methods for getting the
- * length of an SQL <code>CLOB</code> (Character Large Object) value,
- * for materializing a <code>CLOB</code> value on the client, and for
- * searching for a substring or <code>CLOB</code> object within a
- * <code>CLOB</code> value.
+ * <P>The {@code Clob} interface provides methods for getting the
+ * length of an SQL {@code CLOB} (Character Large Object) value,
+ * for materializing a {@code CLOB} value on the client, and for
+ * searching for a substring or {@code CLOB} object within a
+ * {@code CLOB} value.
  * Methods in the interfaces {@link ResultSet},
  * {@link CallableStatement}, and {@link PreparedStatement}, such as
- * <code>getClob</code> and <code>setClob</code> allow a programmer to
- * access an SQL <code>CLOB</code> value.  In addition, this interface
- * has methods for updating a <code>CLOB</code> value.
+ * {@code getClob} and {@code setClob} allow a programmer to
+ * access an SQL {@code CLOB} value.  In addition, this interface
+ * has methods for updating a {@code CLOB} value.
  * <p>
- * All methods on the <code>Clob</code> interface must be fully implemented if the
- * JDBC driver supports the data type.
+ * All methods on the {@code Clob} interface must be
+ * fully implemented if the JDBC driver supports the data type.
  *
  * @since 1.2
  */
@@ -59,67 +59,67 @@
 
   /**
    * Retrieves the number of characters
-   * in the <code>CLOB</code> value
-   * designated by this <code>Clob</code> object.
+   * in the {@code CLOB} value
+   * designated by this {@code Clob} object.
    *
-   * @return length of the <code>CLOB</code> in characters
+   * @return length of the {@code CLOB} in characters
    * @exception SQLException if there is an error accessing the
-   *            length of the <code>CLOB</code> value
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            length of the {@code CLOB} value
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @since 1.2
    */
   long length() throws SQLException;
 
   /**
    * Retrieves a copy of the specified substring
-   * in the <code>CLOB</code> value
-   * designated by this <code>Clob</code> object.
+   * in the {@code CLOB} value
+   * designated by this {@code Clob} object.
    * The substring begins at position
-   * <code>pos</code> and has up to <code>length</code> consecutive
+   * {@code pos} and has up to {@code length} consecutive
    * characters.
    *
    * @param pos the first character of the substring to be extracted.
-   *            The first character is at position 1.
+   *        The first character is at position 1.
    * @param length the number of consecutive characters to be copied;
-   * the value for length must be 0 or greater
-   * @return a <code>String</code> that is the specified substring in
-   *         the <code>CLOB</code> value designated by this <code>Clob</code> object
+   *        the value for length must be 0 or greater
+   * @return a {@code String} that is the specified substring in
+   *         the {@code CLOB} value designated by this {@code Clob} object
    * @exception SQLException if there is an error accessing the
-   *            <code>CLOB</code> value; if pos is less than 1 or length is
-   * less than 0
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            {@code CLOB} value; if pos is less than 1 or length is
+   *            less than 0
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @since 1.2
    */
   String getSubString(long pos, int length) throws SQLException;
 
   /**
-   * Retrieves the <code>CLOB</code> value designated by this <code>Clob</code>
-   * object as a <code>java.io.Reader</code> object (or as a stream of
+   * Retrieves the {@code CLOB} value designated by this {@code Clob}
+   * object as a {@code java.io.Reader} object (or as a stream of
    * characters).
    *
-   * @return a <code>java.io.Reader</code> object containing the
-   *         <code>CLOB</code> data
+   * @return a {@code java.io.Reader} object containing the
+   *         {@code CLOB} data
    * @exception SQLException if there is an error accessing the
-   *            <code>CLOB</code> value
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            {@code CLOB} value
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @see #setCharacterStream
    * @since 1.2
    */
   java.io.Reader getCharacterStream() throws SQLException;
 
   /**
-   * Retrieves the <code>CLOB</code> value designated by this <code>Clob</code>
+   * Retrieves the {@code CLOB} value designated by this {@code Clob}
    * object as an ascii stream.
    *
-   * @return a <code>java.io.InputStream</code> object containing the
-   *         <code>CLOB</code> data
+   * @return a {@code java.io.InputStream} object containing the
+   *         {@code CLOB} data
    * @exception SQLException if there is an error accessing the
-   *            <code>CLOB</code> value
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            {@code CLOB} value
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @see #setAsciiStream
    * @since 1.2
    */
@@ -127,38 +127,38 @@
 
   /**
    * Retrieves the character position at which the specified substring
-   * <code>searchstr</code> appears in the SQL <code>CLOB</code> value
-   * represented by this <code>Clob</code> object.  The search
-   * begins at position <code>start</code>.
+   * {@code searchstr} appears in the SQL {@code CLOB} value
+   * represented by this {@code Clob} object.  The search
+   * begins at position {@code start}.
    *
    * @param searchstr the substring for which to search
-   * @param start the position at which to begin searching; the first position
-   *              is 1
+   * @param start the position at which to begin searching;
+   *        the first position is 1
    * @return the position at which the substring appears or -1 if it is not
    *         present; the first position is 1
    * @exception SQLException if there is an error accessing the
-   *            <code>CLOB</code> value or if pos is less than 1
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            {@code CLOB} value or if pos is less than 1
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @since 1.2
    */
   long position(String searchstr, long start) throws SQLException;
 
   /**
    * Retrieves the character position at which the specified
-   * <code>Clob</code> object <code>searchstr</code> appears in this
-   * <code>Clob</code> object.  The search begins at position
-   * <code>start</code>.
+   * {@code Clob} object {@code searchstr} appears in this
+   * {@code Clob} object.  The search begins at position
+   * {@code start}.
    *
-   * @param searchstr the <code>Clob</code> object for which to search
+   * @param searchstr the {@code Clob} object for which to search
    * @param start the position at which to begin searching; the first
    *              position is 1
-   * @return the position at which the <code>Clob</code> object appears
-   *              or -1 if it is not present; the first position is 1
+   * @return the position at which the {@code Clob} object appears
+   *         or -1 if it is not present; the first position is 1
    * @exception SQLException if there is an error accessing the
-   *            <code>CLOB</code> value or if start is less than 1
-   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-   * this method
+   *            {@code CLOB} value or if start is less than 1
+   * @exception SQLFeatureNotSupportedException if the JDBC driver
+   *            does not support this method
    * @since 1.2
    */
   long position(Clob searchstr, long start) throws SQLException;
@@ -166,90 +166,91 @@
     //---------------------------- jdbc 3.0 -----------------------------------
 
     /**
-     * Writes the given Java <code>String</code> to the <code>CLOB</code>
-     * value that this <code>Clob</code> object designates at the position
-     * <code>pos</code>. The string will overwrite the existing characters
-     * in the <code>Clob</code> object starting at the position
-     * <code>pos</code>.  If the end of the <code>Clob</code> value is reached
-     * while writing the given string, then the length of the <code>Clob</code>
+     * Writes the given Java {@code String} to the {@code CLOB}
+     * value that this {@code Clob} object designates at the position
+     * {@code pos}. The string will overwrite the existing characters
+     * in the {@code Clob} object starting at the position
+     * {@code pos}.  If the end of the {@code Clob} value is reached
+     * while writing the given string, then the length of the {@code Clob}
      * value will be increased to accommodate the extra characters.
      * <p>
-     * <b>Note:</b> If the value specified for <code>pos</code>
-     * is greater then the length+1 of the <code>CLOB</code> value then the
-     * behavior is undefined. Some JDBC drivers may throw a
-     * <code>SQLException</code> while other drivers may support this
+     * <b>Note:</b> If the value specified for {@code pos}
+     * is greater than the length+1 of the {@code CLOB} value then the
+     * behavior is undefined. Some JDBC drivers may throw an
+     * {@code SQLException} while other drivers may support this
      * operation.
      *
-     * @param pos the position at which to start writing to the <code>CLOB</code>
-     *         value that this <code>Clob</code> object represents;
-     * The first position is 1
-     * @param str the string to be written to the <code>CLOB</code>
-     *        value that this <code>Clob</code> designates
+     * @param pos the position at which to start writing to the {@code CLOB}
+     *        value that this {@code Clob} object represents;
+     *        the first position is 1.
+     * @param str the string to be written to the {@code CLOB}
+     *        value that this {@code Clob} designates
      * @return the number of characters written
      * @exception SQLException if there is an error accessing the
-     *            <code>CLOB</code> value or if pos is less than 1
+     *            {@code CLOB} value or if pos is less than 1
      *
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @since 1.4
      */
     int setString(long pos, String str) throws SQLException;
 
     /**
-     * Writes <code>len</code> characters of <code>str</code>, starting
-     * at character <code>offset</code>, to the <code>CLOB</code> value
-     * that this <code>Clob</code> represents.  The string will overwrite the existing characters
-     * in the <code>Clob</code> object starting at the position
-     * <code>pos</code>.  If the end of the <code>Clob</code> value is reached
-     * while writing the given string, then the length of the <code>Clob</code>
+     * Writes {@code len} characters of {@code str}, starting
+     * at character {@code offset}, to the {@code CLOB} value
+     * that this {@code Clob} represents.
+     * The string will overwrite the existing characters
+     * in the {@code Clob} object starting at the position
+     * {@code pos}.  If the end of the {@code Clob} value is reached
+     * while writing the given string, then the length of the {@code Clob}
      * value will be increased to accommodate the extra characters.
      * <p>
-     * <b>Note:</b> If the value specified for <code>pos</code>
-     * is greater then the length+1 of the <code>CLOB</code> value then the
-     * behavior is undefined. Some JDBC drivers may throw a
-     * <code>SQLException</code> while other drivers may support this
+     * <b>Note:</b> If the value specified for {@code pos}
+     * is greater than the length+1 of the {@code CLOB} value then the
+     * behavior is undefined. Some JDBC drivers may throw an
+     * {@code SQLException} while other drivers may support this
      * operation.
      *
      * @param pos the position at which to start writing to this
-     *        <code>CLOB</code> object; The first position  is 1
-     * @param str the string to be written to the <code>CLOB</code>
-     *        value that this <code>Clob</code> object represents
-     * @param offset the offset into <code>str</code> to start reading
+     *        {@code CLOB} object; The first position  is 1
+     * @param str the string to be written to the {@code CLOB}
+     *        value that this {@code Clob} object represents
+     * @param offset the offset into {@code str} to start reading
      *        the characters to be written
      * @param len the number of characters to be written
      * @return the number of characters written
      * @exception SQLException if there is an error accessing the
-     *            <code>CLOB</code> value or if pos is less than 1
+     *            {@code CLOB} value or if pos is less than 1
      *
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @since 1.4
      */
     int setString(long pos, String str, int offset, int len) throws SQLException;
 
     /**
      * Retrieves a stream to be used to write Ascii characters to the
-     * <code>CLOB</code> value that this <code>Clob</code> object represents,
-     * starting at position <code>pos</code>.  Characters written to the stream
+     * {@code CLOB} value that this {@code Clob} object represents,
+     * starting at position {@code pos}.  Characters written to the stream
      * will overwrite the existing characters
-     * in the <code>Clob</code> object starting at the position
-     * <code>pos</code>.  If the end of the <code>Clob</code> value is reached
-     * while writing characters to the stream, then the length of the <code>Clob</code>
+     * in the {@code Clob} object starting at the position
+     * {@code pos}.  If the end of the {@code Clob} value is reached
+     * while writing characters to the stream, then the length of the {@code Clob}
      * value will be increased to accommodate the extra characters.
      * <p>
-     * <b>Note:</b> If the value specified for <code>pos</code>
-     * is greater then the length+1 of the <code>CLOB</code> value then the
-     * behavior is undefined. Some JDBC drivers may throw a
-     * <code>SQLException</code> while other drivers may support this
+     * <b>Note:</b> If the value specified for {@code pos}
+     * is greater than the length+1 of the {@code CLOB} value then the
+     * behavior is undefined. Some JDBC drivers may throw an
+     * {@code SQLException} while other drivers may support this
      * operation.
      *
      * @param pos the position at which to start writing to this
-     *        <code>CLOB</code> object; The first position is 1
+     *        {@code CLOB} object; The first position is 1
      * @return the stream to which ASCII encoded characters can be written
      * @exception SQLException if there is an error accessing the
-     *            <code>CLOB</code> value or if pos is less than 1
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     *            {@code CLOB} value or if pos is less than 1
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @see #getAsciiStream
      *
      * @since 1.4
@@ -258,28 +259,28 @@
 
     /**
      * Retrieves a stream to be used to write a stream of Unicode characters
-     * to the <code>CLOB</code> value that this <code>Clob</code> object
-     * represents, at position <code>pos</code>. Characters written to the stream
+     * to the {@code CLOB} value that this {@code Clob} object
+     * represents, at position {@code pos}. Characters written to the stream
      * will overwrite the existing characters
-     * in the <code>Clob</code> object starting at the position
-     * <code>pos</code>.  If the end of the <code>Clob</code> value is reached
-     * while writing characters to the stream, then the length of the <code>Clob</code>
+     * in the {@code Clob} object starting at the position
+     * {@code pos}.  If the end of the {@code Clob} value is reached
+     * while writing characters to the stream, then the length of the {@code Clob}
      * value will be increased to accommodate the extra characters.
      * <p>
-     * <b>Note:</b> If the value specified for <code>pos</code>
-     * is greater then the length+1 of the <code>CLOB</code> value then the
-     * behavior is undefined. Some JDBC drivers may throw a
-     * <code>SQLException</code> while other drivers may support this
+     * <b>Note:</b> If the value specified for {@code pos}
+     * is greater than the length+1 of the {@code CLOB} value then the
+     * behavior is undefined. Some JDBC drivers may throw an
+     * {@code SQLException} while other drivers may support this
      * operation.
      *
      * @param  pos the position at which to start writing to the
-     *        <code>CLOB</code> value; The first position is 1
+     *        {@code CLOB} value; The first position is 1
      *
      * @return a stream to which Unicode encoded characters can be written
      * @exception SQLException if there is an error accessing the
-     *            <code>CLOB</code> value or if pos is less than 1
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     *            {@code CLOB} value or if pos is less than 1
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @see #getCharacterStream
      *
      * @since 1.4
@@ -287,60 +288,64 @@
     java.io.Writer setCharacterStream(long pos) throws SQLException;
 
     /**
-     * Truncates the <code>CLOB</code> value that this <code>Clob</code>
-     * designates to have a length of <code>len</code>
+     * Truncates the {@code CLOB} value that this {@code Clob}
+     * designates to have a length of {@code len}
      * characters.
      * <p>
-     * <b>Note:</b> If the value specified for <code>pos</code>
-     * is greater then the length+1 of the <code>CLOB</code> value then the
-     * behavior is undefined. Some JDBC drivers may throw a
-     * <code>SQLException</code> while other drivers may support this
+     * <b>Note:</b> If the value specified for {@code pos}
+     * is greater than the length+1 of the {@code CLOB} value then the
+     * behavior is undefined. Some JDBC drivers may throw an
+     * {@code SQLException} while other drivers may support this
      * operation.
      *
-     * @param len the length, in characters, to which the <code>CLOB</code> value
+     * @param len the length, in characters, to which the {@code CLOB} value
      *        should be truncated
      * @exception SQLException if there is an error accessing the
-     *            <code>CLOB</code> value or if len is less than 0
+     *            {@code CLOB} value or if len is less than 0
      *
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @since 1.4
      */
     void truncate(long len) throws SQLException;
 
     /**
-     * This method releases the resources that the <code>Clob</code> object
-     * holds.  The object is invalid once the <code>free</code> method
+     * This method releases the resources that the {@code Clob} object
+     * holds.  The object is invalid once the {@code free} method
      * is called.
      * <p>
-     * After <code>free</code> has been called, any attempt to invoke a
-     * method other than <code>free</code> will result in a <code>SQLException</code>
-     * being thrown.  If <code>free</code> is called multiple times, the subsequent
-     * calls to <code>free</code> are treated as a no-op.
+     * After {@code free} has been called, any attempt to invoke a
+     * method other than {@code free} will result in a {@code SQLException}
+     * being thrown.  If {@code free} is called multiple times, the subsequent
+     * calls to {@code free} are treated as a no-op.
      *
      * @throws SQLException if an error occurs releasing
-     * the Clob's resources
+     *         the Clob's resources
      *
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @since 1.6
      */
     void free() throws SQLException;
 
     /**
-     * Returns a <code>Reader</code> object that contains a partial <code>Clob</code> value, starting
-     * with the character specified by pos, which is length characters in length.
+     * Returns a {@code Reader} object that contains
+     * a partial {@code Clob} value, starting with the character
+     * specified by pos, which is length characters in length.
      *
      * @param pos the offset to the first character of the partial value to
      * be retrieved.  The first character in the Clob is at position 1.
      * @param length the length in characters of the partial value to be retrieved.
-     * @return <code>Reader</code> through which the partial <code>Clob</code> value can be read.
-     * @throws SQLException if pos is less than 1 or if pos is greater than the number of
-     * characters in the <code>Clob</code> or if pos + length is greater than the number of
-     * characters in the <code>Clob</code>
+     * @return {@code Reader} through which
+     *         the partial {@code Clob} value can be read.
+     * @throws SQLException if pos is less than 1;
+     *         or if pos is greater than the number of characters
+     *         in the {@code Clob};
+     *         or if pos + length is greater than the number of
+     *         characters in the {@code Clob}
      *
-     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
-     * this method
+     * @exception SQLFeatureNotSupportedException if the JDBC driver
+     *            does not support this method
      * @since 1.6
      */
     Reader getCharacterStream(long pos, long length) throws SQLException;
--- a/src/java.sql/share/classes/javax/transaction/xa/package.html	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.sql/share/classes/javax/transaction/xa/package.html	Thu May 28 16:51:18 2015 -0700
@@ -35,7 +35,7 @@
 resource manager driver) in JTA transactions. The driver vendor 
 for a specific resource manager provides the implementation of 
 this API.
-<p>
+
 @since 1.4
 </body>
 </html>
--- a/src/java.transaction/share/classes/javax/transaction/package.html	Thu May 28 16:13:52 2015 -0700
+++ b/src/java.transaction/share/classes/javax/transaction/package.html	Thu May 28 16:51:18 2015 -0700
@@ -30,7 +30,7 @@
 <body bgcolor="white">
 
 Contains three exceptions thrown by the ORB machinery during unmarshalling.
-<p>
+
 @since 1.3
 </body>
 </html>
--- a/src/jdk.attach/share/classes/com/sun/tools/attach/AttachPermission.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/jdk.attach/share/classes/com/sun/tools/attach/AttachPermission.java	Thu May 28 16:51:18 2015 -0700
@@ -31,7 +31,7 @@
  * VirtualMachine#attach VirtalMachine.attach} to attach to a target virtual
  * machine.
  * This permission is also checked when an {@link
- * com.sun.tools.attach.spi.AttachProvider AttachProvider} is created. </p>
+ * com.sun.tools.attach.spi.AttachProvider AttachProvider} is created.
  *
  * <p> An <code>AttachPermission</code> object contains a name (also referred
  * to as a "target name") but no actions list; you either have the
@@ -39,7 +39,7 @@
  * The following table provides a summary description of what the
  * permission allows, and discusses the risks of granting code the
  * permission.
- * <P>
+ *
  * <table border=1 cellpadding=5 summary="Table shows permission
  * target name, what the permission allows, and associated risks">
  * <tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.charsets/share/classes/META-INF/services/java.nio.charset.spi.CharsetProvider	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,2 @@
+# NIO charset SPI extended charset provider
+sun.nio.cs.ext.ExtendedCharsets
--- a/src/jdk.charsets/share/classes/sun/nio/cs/ext/ISO2022.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/jdk.charsets/share/classes/sun/nio/cs/ext/ISO2022.java	Thu May 28 16:51:18 2015 -0700
@@ -395,7 +395,7 @@
 
         protected final byte maximumDesignatorLength = 4;
 
-        protected String SODesig,
+        protected byte[] SODesig,
                          SS2Desig = null,
                          SS3Desig = null;
 
@@ -426,21 +426,18 @@
             SS3DesDefined = false;
         }
 
-        private int unicodeToNative(char unicode, byte ebyte[])
-        {
+        private int unicodeToNative(char unicode, byte ebyte[]) {
             int index = 0;
-            byte        tmpByte[];
             char        convChar[] = {unicode};
             byte        convByte[] = new byte[4];
             int         converted;
 
             try{
                 CharBuffer cc = CharBuffer.wrap(convChar);
-                ByteBuffer bb = ByteBuffer.allocate(4);
+                ByteBuffer bb = ByteBuffer.wrap(convByte);
                 ISOEncoder.encode(cc, bb, true);
                 bb.flip();
                 converted = bb.remaining();
-                bb.get(convByte,0,converted);
             } catch(Exception e) {
                 return -1;
             }
@@ -449,9 +446,8 @@
                 if (!SODesDefined) {
                     newSODesDefined = true;
                     ebyte[0] = ISO_ESC;
-                    tmpByte = SODesig.getBytes();
-                    System.arraycopy(tmpByte,0,ebyte,1,tmpByte.length);
-                    index = tmpByte.length+1;
+                    System.arraycopy(SODesig, 0, ebyte, 1, SODesig.length);
+                    index = SODesig.length + 1;
                 }
                 if (!shiftout) {
                     newshiftout = true;
@@ -465,9 +461,8 @@
                         if (!SS2DesDefined) {
                             newSS2DesDefined = true;
                             ebyte[0] = ISO_ESC;
-                            tmpByte = SS2Desig.getBytes();
-                            System.arraycopy(tmpByte, 0, ebyte, 1, tmpByte.length);
-                            index = tmpByte.length+1;
+                            System.arraycopy(SS2Desig, 0, ebyte, 1, SS2Desig.length);
+                            index = SS2Desig.length + 1;
                         }
                         ebyte[index++] = ISO_ESC;
                         ebyte[index++] = ISO_SS2_7;
@@ -477,9 +472,8 @@
                         if(!SS3DesDefined){
                             newSS3DesDefined = true;
                             ebyte[0] = ISO_ESC;
-                            tmpByte = SS3Desig.getBytes();
-                            System.arraycopy(tmpByte, 0, ebyte, 1, tmpByte.length);
-                            index = tmpByte.length+1;
+                            System.arraycopy(SS3Desig, 0, ebyte, 1, SS3Desig.length);
+                            index = SS3Desig.length + 1;
                         }
                         ebyte[index++] = ISO_ESC;
                         ebyte[index++] = ISO_SS3_7;
@@ -560,7 +554,6 @@
              }
         }
 
-
         private CoderResult encodeBufferLoop(CharBuffer src,
                                              ByteBuffer dst)
         {
--- a/src/jdk.charsets/share/classes/sun/nio/cs/ext/ISO2022_CN_CNS.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/jdk.charsets/share/classes/sun/nio/cs/ext/ISO2022_CN_CNS.java	Thu May 28 16:51:18 2015 -0700
@@ -67,9 +67,9 @@
         public Encoder(Charset cs)
         {
             super(cs);
-            SODesig = "$)G";
-            SS2Desig = "$*H";
-            SS3Desig = "$+I";
+            SODesig =  new byte[] {'$', ')', 'G' };
+            SS2Desig = new byte[] {'$', '*', 'H' };
+            SS3Desig = new byte[] {'$', '+', 'I' };
 
             try {
                 Charset cset = Charset.forName("EUC_TW"); // CNS11643
--- a/src/jdk.charsets/share/classes/sun/nio/cs/ext/ISO2022_CN_GB.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/jdk.charsets/share/classes/sun/nio/cs/ext/ISO2022_CN_GB.java	Thu May 28 16:51:18 2015 -0700
@@ -68,7 +68,7 @@
         public Encoder(Charset cs)
         {
             super(cs);
-            SODesig = "$)A";
+            SODesig = new byte[] { '$', ')', 'A'};
 
             try {
                 Charset cset = Charset.forName("EUC_CN"); // GB2312
--- a/src/jdk.charsets/share/classes/sun/nio/cs/ext/ISO2022_KR.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/jdk.charsets/share/classes/sun/nio/cs/ext/ISO2022_KR.java	Thu May 28 16:51:18 2015 -0700
@@ -81,11 +81,9 @@
 
     private static class Encoder extends ISO2022.Encoder {
 
-        public Encoder(Charset cs)
-        {
+        public Encoder(Charset cs) {
             super(cs);
-            SODesig = "$)C";
-
+            SODesig = new byte[] {'$', ')', 'C' };
             try {
                 ISOEncoder = ksc5601_cs.newEncoder();
             } catch (Exception e) { }
--- a/src/jdk.dev/share/classes/sun/tools/native2ascii/A2NFilter.java	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/**
- * This FilterReader class processes a sequence of characters from
- * a source stream containing a mixture of 7-bit ASCII data and
- * 'back-tick U' escaped sequences representing characters which have
- * the possibility of being encoded in a user specified encoding
- * The filter relies on knowing the target encoding and makes a
- * determination as to whether a given supplied character in its
- * source character stream is encodeable in the target encoding.
- * If not, it is remains in its back-tick U escaped form.
- */
-
-package sun.tools.native2ascii;
-import java.io.*;
-
-
-class A2NFilter extends FilterReader {
-
-    // maintain a trailing buffer to hold any incompleted
-    // unicode escaped sequences
-    private char[] trailChars = null;
-
-    public A2NFilter(Reader in) {
-        super(in);
-    }
-
-    public int read(char[] buf, int off, int len) throws IOException {
-        int numChars = 0;        // how many characters have been read
-        int retChars = 0;        // how many characters we'll return
-
-        char[] cBuf = new char[len];
-        int cOffset = 0;         // offset at which we'll start reading
-        boolean eof = false;
-
-        // copy trailing chars from previous invocation to input buffer
-        if (trailChars != null) {
-            for (int i = 0; i < trailChars.length; i++)
-                cBuf[i] = trailChars[i];
-            numChars = trailChars.length;
-            trailChars = null;
-        }
-
-        int n = in.read(cBuf, numChars, len - numChars);
-        if (n < 0) {
-            eof = true;
-            if (numChars == 0)
-                return -1;              // EOF;
-        } else {
-            numChars += n;
-        }
-
-        for (int i = 0; i < numChars;) {
-            char c = cBuf[i++];
-
-            if (c != '\\' || (eof && numChars <= 5)) {
-                // Not a backslash, so copy and continue
-                // Always pass non backslash chars straight thru
-                // for regular encoding. If backslash occurs in
-                // input stream at the final 5 chars then don't
-                // attempt to read-ahead and de-escape since these
-                // are literal occurrences of U+005C which need to
-                // be encoded verbatim in the target encoding.
-                buf[retChars++] = c;
-                continue;
-            }
-
-            int remaining = numChars - i;
-            if (remaining < 5) {
-                // Might be the first character of a unicode escape, but we
-                // don't have enough characters to tell, so save it and finish
-                trailChars = new char[1 + remaining];
-                trailChars[0] = c;
-                for (int j = 0; j < remaining; j++)
-                    trailChars[1 + j] = cBuf[i + j];
-                break;
-            }
-            // At this point we have at least five characters remaining
-
-            c = cBuf[i++];
-            if (c != 'u') {
-                // Not a unicode escape, so copy and continue
-                buf[retChars++] = '\\';
-                buf[retChars++] = c;
-                continue;
-            }
-
-            // The next four characters are the hex part of a unicode escape
-            char rc = 0;
-            boolean isUE = true;
-            try {
-                rc = (char)Integer.parseInt(new String(cBuf, i, 4), 16);
-            } catch (NumberFormatException x) {
-                isUE = false;
-            }
-            if (isUE && Main.canConvert(rc)) {
-                // We'll be able to convert this
-                buf[retChars++] = rc;
-                i += 4; // Align beyond the current uXXXX sequence
-            } else {
-                // We won't, so just retain the original sequence
-                buf[retChars++] = '\\';
-                buf[retChars++] = 'u';
-                continue;
-            }
-
-        }
-
-        return retChars;
-    }
-
-    public int read() throws IOException {
-        char[] buf = new char[1];
-
-        if (read(buf, 0, 1) == -1)
-            return -1;
-        else
-            return (int)buf[0];
-    }
-
-}
--- a/src/jdk.dev/share/classes/sun/tools/native2ascii/Main.java	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,375 +0,0 @@
-/*
- * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- */
-
-/*
-        Currently javac and load() method in java.util.Properties
-        supports only Latin1 encoding input.
-        But in Asian platforms programmer or message translator
-        uses the editor which support othere than latin1 encoding
-        to specify their native language string.
-        So if programmer or message translator wants to use other than
-        Latin1 character in his/her program source or properties file
-        they must convert the file to ASCII plus \udddd notation.
-        (javac/load() modification is not appropriate due to
-         time constraints for JDK1.1)
-        This utility is for the purpose of that conversion.
-
-    NAME
-        native2ascii - convert native encoding file to ascii file
-                       include \udddd Unicode notation
-
-    SYNOPSIS
-        native2ascii [options] [inputfile [outputfile]]
-
-    DESCRIPTION
-        If outputfile is not described standard output is used as
-        output file, and if inputfile is not also described
-        stardard input is used as input file.
-
-        Options
-
-        -reverse
-           convert ascii with \udddd notation to native encoding
-
-        -encoding encoding_name
-           Specify the encoding name which is used by conversion.
-           8859_[1 - 9], JIS, EUCJIS, SJIS is currently supported.
-           Default encoding is taken from System property "file.encoding".
-
-*/
-
-package sun.tools.native2ascii;
-
-import java.io.*;
-import java.util.*;
-import java.text.MessageFormat;
-import java.nio.charset.CharsetEncoder;
-import java.nio.charset.Charset;
-import java.nio.charset.IllegalCharsetNameException;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.UnsupportedCharsetException;
-
-/**
- * Main program of the native2ascii
- */
-
-public class Main {
-
-    String inputFileName = null;
-    String outputFileName = null;
-    File tempFile = null;
-    boolean reverse = false;
-    static String encodingString = null;
-    static String defaultEncoding = null;
-    static CharsetEncoder encoder = null;
-
-    /**
-     * Run the converter
-     */
-    public synchronized boolean convert(String argv[]) {
-        List<String> v = new ArrayList<>(2);
-        File outputFile = null;
-        boolean createOutputFile = false;
-
-        // Parse arguments
-        for (int i = 0; i < argv.length; i++) {
-            if (argv[i].equals("-encoding")) {
-                if ((i + 1) < argv.length) {
-                    encodingString = argv[++i];
-                } else {
-                    error(getMsg("err.bad.arg"));
-                    usage();
-                    return false;
-                }
-            } else if (argv[i].equals("-reverse")) {
-                reverse = true;
-            } else {
-                if (v.size() > 1) {
-                    usage();
-                    return false;
-                }
-                v.add(argv[i]);
-            }
-        }
-
-        if (encodingString == null) {
-            defaultEncoding = Charset.defaultCharset().name();
-        }
-        char[] lineBreak = System.getProperty("line.separator").toCharArray();
-
-        try {
-            initializeConverter();
-
-            if (v.size() == 1) {
-                inputFileName = v.get(0);
-            }
-
-            if (v.size() == 2) {
-                inputFileName = v.get(0);
-                outputFileName = v.get(1);
-                createOutputFile = true;
-            }
-
-            if (createOutputFile) {
-                outputFile = new File(outputFileName);
-                if (outputFile.exists() && !outputFile.canWrite()) {
-                    throw new Exception(formatMsg("err.cannot.write", outputFileName));
-                }
-            }
-
-            if (reverse) {
-                try (BufferedReader reader = getA2NInput(inputFileName);
-                        Writer osw = getA2NOutput(outputFileName);) {
-                    String line;
-                    while ((line = reader.readLine()) != null) {
-                        osw.write(line.toCharArray());
-                        osw.write(lineBreak);
-                        if (outputFileName == null) { // flush stdout
-                            osw.flush();
-                        }
-                    }
-                }
-            } else {
-                // N2A
-                try (BufferedReader in = getN2AInput(inputFileName);
-                        BufferedWriter out = getN2AOutput(outputFileName);) {
-                    String inLine;
-                    while ((inLine = in.readLine()) != null) {
-                        out.write(inLine.toCharArray());
-                        out.write(lineBreak);
-                        if (outputFileName == null) { // flush stdout
-                            out.flush();
-                        }
-                    }
-                }
-            }
-
-            // Since we are done rename temporary file to desired output file
-            if (createOutputFile) {
-                if (outputFile.exists()) {
-                    // Some win32 platforms can't handle atomic
-                    // rename if source and target file paths are
-                    // identical. To make things simple we just unconditionally
-                    // delete the target file before calling renameTo()
-                    outputFile.delete();
-                }
-                tempFile.renameTo(outputFile);
-            }
-        } catch (Exception e) {
-            error(e.toString());
-            return false;
-        }
-
-        return true;
-    }
-
-    private void error(String msg){
-        System.out.println(msg);
-    }
-
-    private void usage(){
-        System.out.println(getMsg("usage"));
-    }
-
-
-    private BufferedReader getN2AInput(String inFile) throws Exception {
-
-        InputStream forwardIn;
-        if (inFile == null)
-            forwardIn = System.in;
-        else {
-            File f = new File(inFile);
-            if (!f.canRead()){
-                throw new Exception(formatMsg("err.cannot.read", f.getName()));
-            }
-
-            try {
-                 forwardIn = new FileInputStream(inFile);
-            } catch (IOException e) {
-               throw new Exception(formatMsg("err.cannot.read", f.getName()));
-            }
-        }
-
-        BufferedReader r = (encodingString != null) ?
-            new BufferedReader(new InputStreamReader(forwardIn,
-                                                     encodingString)) :
-            new BufferedReader(new InputStreamReader(forwardIn));
-        return r;
-    }
-
-
-    private BufferedWriter getN2AOutput(String outFile) throws Exception {
-        Writer output;
-        BufferedWriter n2aOut;
-
-        if (outFile == null)
-            output = new OutputStreamWriter(System.out,"US-ASCII");
-
-        else {
-            File f = new File(outFile);
-
-            File tempDir = f.getParentFile();
-
-            if (tempDir == null)
-                tempDir = new File(System.getProperty("user.dir"));
-
-            tempFile = File.createTempFile("_N2A",
-                                           ".TMP",
-                                            tempDir);
-            tempFile.deleteOnExit();
-
-            try {
-                output = new FileWriter(tempFile);
-            } catch (IOException e){
-                throw new Exception(formatMsg("err.cannot.write", tempFile.getName()));
-            }
-        }
-
-        n2aOut = new BufferedWriter(new N2AFilter(output));
-        return n2aOut;
-    }
-
-    private BufferedReader getA2NInput(String inFile) throws Exception {
-        Reader in;
-        BufferedReader reader;
-
-        if (inFile == null)
-            in = new InputStreamReader(System.in, "US-ASCII");
-        else {
-            File f = new File(inFile);
-            if (!f.canRead()){
-                throw new Exception(formatMsg("err.cannot.read", f.getName()));
-            }
-
-            try {
-                 in = new FileReader(inFile);
-            } catch (Exception e) {
-               throw new Exception(formatMsg("err.cannot.read", f.getName()));
-            }
-        }
-
-        reader = new BufferedReader(new A2NFilter(in));
-        return reader;
-    }
-
-    private Writer getA2NOutput(String outFile) throws Exception {
-
-        OutputStreamWriter w = null;
-        OutputStream output = null;
-
-        if (outFile == null)
-            output = System.out;
-        else {
-            File f = new File(outFile);
-
-            File tempDir = f.getParentFile();
-            if (tempDir == null)
-                tempDir = new File(System.getProperty("user.dir"));
-            tempFile =  File.createTempFile("_N2A",
-                                            ".TMP",
-                                            tempDir);
-            tempFile.deleteOnExit();
-
-            try {
-                output = new FileOutputStream(tempFile);
-            } catch (IOException e){
-                throw new Exception(formatMsg("err.cannot.write", tempFile.getName()));
-            }
-        }
-
-        w = (encodingString != null) ?
-            new OutputStreamWriter(output, encodingString) :
-            new OutputStreamWriter(output);
-
-        return (w);
-    }
-
-    private static Charset lookupCharset(String csName) {
-        if (Charset.isSupported(csName)) {
-           try {
-                return Charset.forName(csName);
-           } catch (UnsupportedCharsetException x) {
-                throw new Error(x);
-           }
-        }
-        return null;
-    }
-
-    public static boolean canConvert(char ch) {
-        return (encoder != null && encoder.canEncode(ch));
-    }
-
-    private static void initializeConverter() throws UnsupportedEncodingException {
-        Charset cs = null;
-
-        try {
-            cs = (encodingString == null) ?
-                lookupCharset(defaultEncoding):
-                lookupCharset(encodingString);
-
-            encoder =  (cs != null) ?
-                cs.newEncoder() :
-                null;
-        } catch (IllegalCharsetNameException e) {
-            throw new Error(e);
-        }
-    }
-
-    private static ResourceBundle rsrc;
-
-    static {
-        try {
-            rsrc = ResourceBundle.getBundle(
-                     "sun.tools.native2ascii.resources.MsgNative2ascii");
-        } catch (MissingResourceException e) {
-            throw new Error("Missing message file.");
-        }
-    }
-
-    private String getMsg(String key) {
-        try {
-            return (rsrc.getString(key));
-        } catch (MissingResourceException e) {
-            throw new Error("Error in  message file format.");
-        }
-    }
-
-    private String formatMsg(String key, String arg) {
-        String msg = getMsg(key);
-        return MessageFormat.format(msg, arg);
-    }
-
-
-    /**
-     * Main program
-     */
-    public static void main(String argv[]){
-        Main converter = new Main();
-        System.exit(converter.convert(argv) ? 0 : 1);
-    }
-}
--- a/src/jdk.dev/share/classes/sun/tools/native2ascii/N2AFilter.java	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved.
- * 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.
- */
-
-
-/**
- * This FilterWriter class takes an existing Writer and uses
- * the 'back-tick U' escape notation to escape characters which are
- * encountered within the input character based stream which
- * are outside the 7-bit ASCII range. The native platforms linefeed
- * character is emitted for each line of processed input
- */
-
-package sun.tools.native2ascii;
-import java.io.*;
-import java.nio.BufferOverflowException;
-
-class N2AFilter extends FilterWriter {
-
-    public N2AFilter(Writer out) { super(out); }
-
-    public void write(char b) throws IOException {
-        char[] buf = new char[1];
-        buf[0] = b;
-        write(buf, 0, 1);
-    }
-
-    public void write(char[] buf, int off, int len) throws IOException {
-
-        String lineBreak = System.getProperty("line.separator");
-
-        //System.err.println ("xx Out buffer length is " + buf.length );
-        for (int i = 0; i < len; i++) {
-            if ((buf[i] > '\u007f')) {
-                // write \udddd
-                out.write('\\');
-                out.write('u');
-                String hex =
-                    Integer.toHexString(buf[i]);
-                StringBuilder hex4 = new StringBuilder(hex);
-                hex4.reverse();
-                int length = 4 - hex4.length();
-                for (int j = 0; j < length; j++) {
-                    hex4.append('0');
-                }
-                for (int j = 0; j < 4; j++) {
-                    out.write(hex4.charAt(3 - j));
-                }
-            } else
-                out.write(buf[i]);
-        }
-    }
-}
--- a/src/jdk.dev/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii.java	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.tools.native2ascii.resources;
-
-import java.util.ListResourceBundle;
-
-public class MsgNative2ascii extends ListResourceBundle {
-
-    public Object[][] getContents() {
-        Object[][] temp = new Object[][] {
-        {"err.bad.arg", "-encoding requires argument"},
-        {"err.cannot.read",  "{0} could not be read."},
-        {"err.cannot.write", "{0} could not be written."},
-        {"usage", "Usage: native2ascii" +
-         " [-reverse] [-encoding encoding] [inputfile [outputfile]]"},
-        };
-
-        return temp;
-    }
-}
--- a/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java	Thu May 28 16:51:18 2015 -0700
@@ -173,12 +173,12 @@
      * <p>
      * This method must be called prior to calling {@link #getResponseBody()}.
      * @param rCode the response code to send
-     * @param responseLength if > 0, specifies a fixed response body length
-     *        and that exact number of bytes must be written
+     * @param responseLength if {@literal > 0}, specifies a fixed response
+     *        body length and that exact number of bytes must be written
      *        to the stream acquired from getResponseBody(), or else
      *        if equal to 0, then chunked encoding is used,
      *        and an arbitrary number of bytes may be written.
-     *        if <= -1, then no response body length is specified and
+     *        if {@literal <= -1}, then no response body length is specified and
      *        no response body may be written.
      * @see HttpExchange#getResponseBody()
      */
--- a/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/JConsoleContext.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/JConsoleContext.java	Thu May 28 16:51:18 2015 -0700
@@ -39,7 +39,6 @@
  * {@link ConnectionState#DISCONNECTED DISCONNECTED}.
  * The {@code JConsoleContext} instance will be the source for
  * any generated events.
- * <p>
  *
  * @since 1.6
  */
--- a/src/jdk.rmic/share/classes/sun/tools/javac/resources/javac.properties	Thu May 28 16:13:52 2015 -0700
+++ b/src/jdk.rmic/share/classes/sun/tools/javac/resources/javac.properties	Thu May 28 16:51:18 2015 -0700
@@ -498,9 +498,9 @@
 javac.err.cant.write=\
 	Can''t write: {0}
 javac.err.fatal.error=\
-	An error has occurred in the compiler; please file a bug report (http://bugreport.sun.com/bugreport/).
+	An error has occurred in the compiler; please file a bug report (http://bugreport.java.com/bugreport/).
 javac.err.fatal.exception=\
-	An exception has occurred in the compiler; please file a bug report (http://bugreport.sun.com/bugreport/).
+	An exception has occurred in the compiler; please file a bug report (http://bugreport.java.com/bugreport/).
 javac.err.no.inner.classes=\
 	Support for inner classes has been disabled.
 javac.err.uncaught.exception=\
@@ -634,4 +634,4 @@
 	[The source classpath is "{0}"]\n\
 	[The library classpath is "{1}"]
 javac.err.invalid.encoding.char=\
-	The source file encoding may be different with this platform encoding. Please use -encoding option to adjust file encoding, or apply native2ascii utility to make source file ASCII encoding.
+	The source file encoding may be different with this platform encoding. Please use -encoding option to adjust file encoding, or make sure source file converted to ASCII encoding.
--- a/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java	Thu May 28 16:51:18 2015 -0700
@@ -503,6 +503,7 @@
         boolean hasCreateNew = false;
         boolean hasCreate = false;
         boolean hasAppend = false;
+        boolean hasTruncate = false;
         for (OpenOption opt: options) {
             if (opt == READ)
                 throw new IllegalArgumentException("READ not allowed");
@@ -512,7 +513,11 @@
                 hasCreate = true;
             if (opt == APPEND)
                 hasAppend = true;
+            if (opt == TRUNCATE_EXISTING)
+                hasTruncate = true;
         }
+        if (hasAppend && hasTruncate)
+            throw new IllegalArgumentException("APPEND + TRUNCATE_EXISTING not allowed");
         beginRead();                 // only need a readlock, the "update()" will
         try {                        // try to obtain a writelock when the os is
             ensureOpen();            // being closed.
@@ -564,6 +569,8 @@
             if (!(option instanceof StandardOpenOption))
                 throw new IllegalArgumentException();
         }
+        if (options.contains(APPEND) && options.contains(TRUNCATE_EXISTING))
+            throw new IllegalArgumentException("APPEND + TRUNCATE_EXISTING not allowed");
     }
 
     // Returns a Writable/ReadByteChannel for now. Might consdier to use
@@ -711,15 +718,19 @@
             if (forWrite) {
                 checkWritable();
                 if (e == null) {
-                if (!options.contains(StandardOpenOption.CREATE_NEW))
-                    throw new NoSuchFileException(getString(path));
+                    if (!options.contains(StandardOpenOption.CREATE) &&
+                        !options.contains(StandardOpenOption.CREATE_NEW)) {
+                        throw new NoSuchFileException(getString(path));
+                    }
                 } else {
-                    if (options.contains(StandardOpenOption.CREATE_NEW))
+                    if (options.contains(StandardOpenOption.CREATE_NEW)) {
                         throw new FileAlreadyExistsException(getString(path));
+                    }
                     if (e.isDir())
                         throw new FileAlreadyExistsException("directory <"
                             + getString(path) + "> exists");
                 }
+                options = new HashSet<>(options);
                 options.remove(StandardOpenOption.CREATE_NEW); // for tmpfile
             } else if (e == null || e.isDir()) {
                 throw new NoSuchFileException(getString(path));
--- a/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java	Thu May 28 16:13:52 2015 -0700
+++ b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java	Thu May 28 16:51:18 2015 -0700
@@ -773,7 +773,7 @@
     {
         if (options.length == 0)
             return zfs.newOutputStream(getResolvedPath(),
-                                       CREATE_NEW, WRITE);
+                                       CREATE, TRUNCATE_EXISTING, WRITE);
         return zfs.newOutputStream(getResolvedPath(), options);
     }
 
--- a/test/ProblemList.txt	Thu May 28 16:13:52 2015 -0700
+++ b/test/ProblemList.txt	Thu May 28 16:51:18 2015 -0700
@@ -123,6 +123,9 @@
 # 8029891
 java/lang/ClassLoader/deadlock/GetResource.java                 generic-all
 
+# 8080428
+java/lang/invoke/8022701/MHIllegalAccess.java                   generic-all
+
 ############################################################################
 
 # jdk_instrument
--- a/test/TEST.groups	Thu May 28 16:13:52 2015 -0700
+++ b/test/TEST.groups	Thu May 28 16:51:18 2015 -0700
@@ -214,14 +214,12 @@
     jdk/internal/jimage \
     jdk/internal/jrtfs \
     sun/tools/java \
-    sun/tools/native2ascii \
     sun/tools/jrunscript
 
 svc_tools = \
     com/sun/tools/attach \
     sun/tools \
     -sun/tools/java \
-    -sun/tools/native2ascii \
     -sun/tools/jrunscript \
     sun/jvmstat \
     demo/jvmti
@@ -598,6 +596,10 @@
   sun/security/jgss \
   sun/security/krb5 \
   java/lang/annotation/AnnotationType/AnnotationTypeDeadlockTest.java \
+  java/lang/invoke/lambda/LambdaStackTrace.java \
+  java/lang/invoke/LFCaching/LFGarbageCollectedTest.java \
+  java/lang/invoke/LFCaching/LFMultiThreadCachingTest.java \
+  java/lang/invoke/LFCaching/LFSingleThreadCachingTest.java \
   java/lang/System/MacEncoding/TestFileEncoding.java \
   java/nio/channels/AsynchronousSocketChannel/Leaky.java \
   java/security/PermissionCollection/Concurrent.java \
--- a/test/com/sun/corba/transport/KeepAliveSockets.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/corba/transport/KeepAliveSockets.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 8017195
  * @summary Introduce option to setKeepAlive parameter on CORBA sockets
  *
+ * @modules java.corba/com.sun.corba.se.impl.orb java.corba/com.sun.corba.se.impl.transport
  * @run main/othervm KeepAliveSockets
  * @run main/othervm -Dcom.sun.CORBA.transport.enableTcpKeepAlive KeepAliveSockets
  * @run main/othervm -Dcom.sun.CORBA.transport.enableTcpKeepAlive=true KeepAliveSockets
--- a/test/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @bug 8044193
  * @summary Test AES ciphers with different modes and padding schemes after
  *  remove then add provider.
+ * @modules java.base/com.sun.crypto.provider
  * @run main/othervm/policy=testAES.policy TestAESWithProviderChange
  */
 
--- a/test/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java	Thu May 28 16:51:18 2015 -0700
@@ -24,9 +24,10 @@
 /*
  * @test
  * @bug 5008159 5008156
- * @run main XMLEncKAT
  * @summary Verify that the two key wrap ciphers, i.e. "DESedeWrap"
  * and "AESWrap", work as expected.
+ * @modules java.base/sun.misc
+ * @run main XMLEncKAT
  * @author Valerie Peng
  */
 import java.security.Key;
--- a/test/com/sun/crypto/provider/TLS/TestKeyMaterial.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/crypto/provider/TLS/TestKeyMaterial.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6313661
  * @summary Known-answer-test for TlsKeyMaterial generator
  * @author Andreas Sterbenz
+ * @modules java.base/sun.security.internal.spec
  */
 
 import java.io.*;
--- a/test/com/sun/crypto/provider/TLS/TestMasterSecret.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/crypto/provider/TLS/TestMasterSecret.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @bug 6313661
  * @summary Known-answer-test for TlsMasterSecret generator
  * @author Andreas Sterbenz
+ * @modules java.base/sun.security.internal.interfaces
+ *          java.base/sun.security.internal.spec
  */
 
 import java.io.*;
--- a/test/com/sun/crypto/provider/TLS/TestPRF.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/crypto/provider/TLS/TestPRF.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6313661
  * @summary Basic known-answer-test for TlsPrf
  * @author Andreas Sterbenz
+ * @modules java.base/sun.security.internal.spec
  */
 
 import java.io.*;
--- a/test/com/sun/crypto/provider/TLS/TestPRF12.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/crypto/provider/TLS/TestPRF12.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6313661
+ * @modules java.base/sun.security.internal.spec
  * @summary Basic known-answer-test for TlsPrf 12
  *
  * Vector obtained from the IETF TLS working group mailing list:
--- a/test/com/sun/crypto/provider/TLS/TestPremaster.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/crypto/provider/TLS/TestPremaster.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6313661
  * @summary Basic tests for TlsRsaPremasterSecret generator
  * @author Andreas Sterbenz
+ * @modules java.base/sun.security.internal.spec
  */
 
 import java.security.Security;
--- a/test/com/sun/jndi/cosnaming/CNNameParser.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/jndi/cosnaming/CNNameParser.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @bug 4238914
  * @summary Tests that JNDI/COS naming parser supports the syntax
  * defined in the new INS standard.
+ * @modules java.corba/com.sun.jndi.cosnaming
  */
 
 import javax.naming.*;
--- a/test/com/sun/jndi/cosnaming/IiopUrlIPv6.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/jndi/cosnaming/IiopUrlIPv6.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 5042453
  * @summary Ipv6 address throws Non-numeric port number error
+ * @modules java.corba/com.sun.jndi.cosnaming
  */
 
 import com.sun.jndi.cosnaming.*;
--- a/test/com/sun/jndi/dns/Parser.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/jndi/dns/Parser.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8035105
  * @summary DNS resource record parsing
+ * @modules jdk.naming.dns/com.sun.jndi.dns
  */
 
 import com.sun.jndi.dns.ResourceRecord;
--- a/test/com/sun/jndi/ldap/Base64Test.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/jndi/ldap/Base64Test.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8035807
  * @summary Confirm that old and new Base64 encodings are compatible.
+ * @modules java.base/sun.misc
  */
 
 import java.io.*;
--- a/test/com/sun/jndi/ldap/LdapName/Case.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/jndi/ldap/LdapName/Case.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4278094
  * @summary Ensure that setValuesCaseSensitive() does not leave name
  *      in an invalid state.
+ * @modules java.naming/com.sun.jndi.ldap
  */
 
 import com.sun.jndi.ldap.LdapName;
--- a/test/com/sun/jndi/ldap/LdapName/UnescapeTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/jndi/ldap/LdapName/UnescapeTest.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4892070
  * @summary java gets hung in
  *      com.sun.jndi.ldap.LdapName$TypeAndValue.unescapeValue()
+ * @modules java.naming/com.sun.jndi.ldap
  */
 
 import com.sun.jndi.ldap.LdapName;
--- a/test/com/sun/jndi/ldap/LdapURLOptionalFields.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/jndi/ldap/LdapURLOptionalFields.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8074761
  * @summary RFC-2255 allows attribute, scope and filter to be empty.
+ * @modules java.naming/com.sun.jndi.ldap
  */
 
 import com.sun.jndi.ldap.LdapURL;
--- a/test/com/sun/jndi/ldap/LdapUnicodeURL.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/jndi/ldap/LdapUnicodeURL.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6961765
  * @summary Double byte characters corrupted in DN for LDAP referrals
+ * @modules java.naming/com.sun.jndi.ldap
  */
 
 import com.sun.jndi.ldap.LdapURL;
--- a/test/com/sun/jndi/rmi/registry/RegistryContext/ContextWithNullProperties.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/jndi/rmi/registry/RegistryContext/ContextWithNullProperties.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 6676075
  * @summary RegistryContext (com.sun.jndi.url.rmi.rmiURLContext) coding problem
+ * @modules jdk.naming.rmi/com.sun.jndi.rmi.registry java.rmi/sun.rmi.registry
+ *     java.rmi/sun.rmi.server java.rmi/sun.rmi.transport java.rmi/sun.rmi.transport.tcp
  * @library ../../../../../../java/rmi/testlibrary
  * @build TestLibrary
  * @run main ContextWithNullProperties
--- a/test/com/sun/jndi/rmi/registry/RegistryContext/UnbindIdempotent.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/jndi/rmi/registry/RegistryContext/UnbindIdempotent.java	Thu May 28 16:51:18 2015 -0700
@@ -25,7 +25,9 @@
  * @test
  * @bug 4278121
  * @summary Ensure that calling unbind() on an unbound name returns
- *      successfully.
+ *     successfully.
+ * @modules java.rmi/sun.rmi.registry java.rmi/sun.rmi.server
+ *     java.rmi/sun.rmi.transport java.rmi/sun.rmi.transport.tcp
  * @library ../../../../../../java/rmi/testlibrary
  * @build TestLibrary
  * @run main UnbindIdempotent
--- a/test/com/sun/management/VMOptionOpenDataTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/management/VMOptionOpenDataTest.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,8 @@
  * @test
  * @bug     8042901
  * @summary Check that MappedMXBeanType.toOpenTypeData supports VMOption
+ * @modules java.management/sun.management
+ *          jdk.management/com.sun.management
  * @author  Shanliang Jiang
  */
 public class VMOptionOpenDataTest {
--- a/test/com/sun/net/ssl/SSLSecurity/ProviderTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/net/ssl/SSLSecurity/ProviderTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 4667976
+ * @modules java.base/com.sun.net.ssl
  * @compile JavaxSSLContextImpl.java ComSSLContextImpl.java
  *      JavaxTrustManagerFactoryImpl.java ComTrustManagerFactoryImpl.java
  *      JavaxKeyManagerFactoryImpl.java ComKeyManagerFactoryImpl.java
--- a/test/com/sun/net/ssl/SSLSecurity/TruncateArray.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/net/ssl/SSLSecurity/TruncateArray.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4665824
  * @summary JSSE - ClassCastException with 1.4
+ * @modules java.base/com.sun.net.ssl
  */
 
 import com.sun.net.ssl.*;
--- a/test/com/sun/org/apache/xml/internal/security/TruncateHMAC.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/org/apache/xml/internal/security/TruncateHMAC.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,10 @@
  * @bug 6824440 6858484
  * @summary Check that Apache XMLSec APIs will not accept HMAC truncation
  *    lengths less than minimum bound
+ * @modules java.xml.crypto/com.sun.org.apache.xml.internal.security
+ *          java.xml.crypto/com.sun.org.apache.xml.internal.security.c14n
+ *          java.xml.crypto/com.sun.org.apache.xml.internal.security.signature
+ *          java.xml.crypto/com.sun.org.apache.xml.internal.security.utils
  * @compile -XDignore.symbol.file TruncateHMAC.java
  * @run main TruncateHMAC
  */
--- a/test/com/sun/org/apache/xml/internal/security/exceptions/LocaleTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/org/apache/xml/internal/security/exceptions/LocaleTest.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6454215
  * @summary Make sure there are no runtime errors when throwing Apache XML
  *      Security exceptions in a non-US default locale.
+ * @modules java.xml.crypto/com.sun.org.apache.xml.internal.security.exceptions
  * @compile -XDignore.symbol.file LocaleTest.java
  * @run main LocaleTest
  */
--- a/test/com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @author Sean Mullan
  * @bug 6461674 8009217 7147060
+ * @modules java.xml.crypto/com.sun.org.apache.xml.internal.security.exceptions
+ *          java.xml.crypto/com.sun.org.apache.xml.internal.security.transforms
  * @compile -XDignore.symbol.file ClassLoaderTest.java MyTransform.java
  * @run main/othervm ClassLoaderTest
  * @summary Ensure Transform.register works with transform implementations
--- a/test/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream/BufferOverflowTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream/BufferOverflowTest.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6954275
  * @summary Check that UnsyncByteArrayOutputStream does not
  *          throw ArrayIndexOutOfBoundsException
+ * @modules java.xml.crypto/com.sun.org.apache.xml.internal.security.utils
  * @compile -XDignore.symbol.file BufferOverflowTest.java
  * @run main BufferOverflowTest
  */
--- a/test/com/sun/security/sasl/ntlm/NTLMTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/security/sasl/ntlm/NTLMTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 6911951 7150092
  * @summary NTLM should be a supported Java SASL mechanism
+ * @modules java.base/sun.misc
+ *          java.security.sasl
  */
 import java.io.IOException;
 import javax.security.sasl.*;
--- a/test/com/sun/tools/attach/BasicTests.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/tools/attach/BasicTests.java	Thu May 28 16:51:18 2015 -0700
@@ -37,6 +37,7 @@
  * @test
  * @bug 6173612 6273707 6277253 6335921 6348630 6342019 6381757
  * @summary Basic unit tests for the VM attach mechanism.
+ * @modules jdk.jartool/sun.tools.jar
  * @library /lib/testlibrary
  * @modules java.instrument
  *          java.management
--- a/test/com/sun/tools/attach/PermissionTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/tools/attach/PermissionTest.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,7 @@
  * @test
  * @bug 6173612 6273707 6277253 6335921 6348630 6342019 6381757
  * @summary Basic unit tests for the VM attach mechanism.
+ * @modules jdk.jartool/sun.tools.jar
  * @library /lib/testlibrary
  * @modules java.management
  *          jdk.attach
--- a/test/com/sun/tools/attach/ProviderTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/tools/attach/ProviderTest.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,7 @@
  * @test
  * @bug 6173612 6273707 6277253 6335921 6348630 6342019 6381757
  * @summary Basic unit tests for the VM attach mechanism.
+ * @modules jdk.jartool/sun.tools.jar
  * @library /lib/testlibrary
  * @modules java.management
  *          jdk.attach
--- a/test/com/sun/tools/attach/StartManagementAgent.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/tools/attach/StartManagementAgent.java	Thu May 28 16:51:18 2015 -0700
@@ -39,6 +39,7 @@
 /*
  * @test
  * @summary Test for VirtualMachine.startManagementAgent and VirtualMachine.startLocalManagementAgent
+ * @modules jdk.jartool/sun.tools.jar
  * @library /lib/testlibrary
  * @modules java.management
  *          jdk.attach
--- a/test/com/sun/tools/attach/TempDirTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/com/sun/tools/attach/TempDirTest.java	Thu May 28 16:51:18 2015 -0700
@@ -37,6 +37,7 @@
  * @test
  * @bug 8033104
  * @summary Test to make sure attach and jvmstat works correctly when java.io.tmpdir is set
+ * @modules jdk.jartool/sun.tools.jar
  * @library /lib/testlibrary
  * @modules java.management
  *          jdk.jartool/sun.tools.jar
--- a/test/java/awt/TrayIcon/8072769/bug8072769.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/awt/TrayIcon/8072769/bug8072769.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
    @author Semyon Sadetsky
    @library ../../../../lib/testlibrary
    @build jdk.testlibrary.OSInfo
+   @run main bug8072769
   */
 
 import jdk.testlibrary.OSInfo;
--- a/test/java/lang/Class/getSimpleName/GetSimpleNameTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/Class/getSimpleName/GetSimpleNameTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 8057919
  * @summary Class.getSimpleName() should work for non-JLS compliant class names
+ * @modules java.base/jdk.internal.org.objectweb.asm
  */
 import jdk.internal.org.objectweb.asm.*;
 import static jdk.internal.org.objectweb.asm.Opcodes.*;
--- a/test/java/lang/ProcessBuilder/Basic.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/ProcessBuilder/Basic.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,7 @@
  *      4947220 7018606 7034570 4244896 5049299 8003488 8054494 8058464
  *      8067796
  * @summary Basic tests for Process and Environment Variable code
+ * @modules java.base/sun.misc
  * @run main/othervm/timeout=300 Basic
  * @run main/othervm/timeout=300 -Djdk.lang.Process.launchMechanism=fork Basic
  * @author Martin Buchholz
--- a/test/java/lang/ProcessBuilder/RedirectWithLongFilename.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/ProcessBuilder/RedirectWithLongFilename.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8072611
  * @summary ProcessBuilder Redirect to file appending on Windows should work with long file names
+ * @modules java.base/sun.misc
  * @author Thomas Stuefe
  */
 
--- a/test/java/lang/annotation/AnnotationsInheritanceOrderRedefinitionTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/annotation/AnnotationsInheritanceOrderRedefinitionTest.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary Test inheritance, order and class redefinition behaviour of RUNTIME
  *          class annotations
  * @author plevart
+ * @modules java.base/sun.reflect.annotation
  */
 
 import sun.reflect.annotation.AnnotationParser;
--- a/test/java/lang/instrument/PremainClass/NoPremainAgentTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/instrument/PremainClass/NoPremainAgentTest.java	Thu May 28 16:51:18 2015 -0700
@@ -33,7 +33,7 @@
  * @modules java.management
  * @run build jdk.testlibrary.* DummyMain
  * @run shell ../MakeJAR3.sh NoPremainAgent
- * @run main NoPremainAgentTest
+ * @run main/othervm -XX:-CreateCoredumpOnCrash NoPremainAgentTest
  */
 public class NoPremainAgentTest {
     // Use a javaagent without the premain() function.
--- a/test/java/lang/instrument/PremainClass/ZeroArgPremainAgentTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/instrument/PremainClass/ZeroArgPremainAgentTest.java	Thu May 28 16:51:18 2015 -0700
@@ -33,7 +33,7 @@
  * @modules java.management
  * @run build jdk.testlibrary.* DummyMain
  * @run shell ../MakeJAR3.sh ZeroArgPremainAgent
- * @run main ZeroArgPremainAgentTest
+ * @run main/othervm -XX:-CreateCoredumpOnCrash ZeroArgPremainAgentTest
  */
 public class ZeroArgPremainAgentTest {
     // Use a javaagent with a zero argument premain() function.
--- a/test/java/lang/invoke/8022701/MHIllegalAccess.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/invoke/8022701/MHIllegalAccess.java	Thu May 28 16:51:18 2015 -0700
@@ -26,7 +26,7 @@
  * @test
  * @bug 8022701
  * @summary Illegal access exceptions via methodhandle invocations threw wrong error.
- *
+ * @modules java.base/jdk.internal.org.objectweb.asm
  * @compile -XDignore.symbol.file BogoLoader.java InvokeSeveralWays.java MHIllegalAccess.java MethodSupplier.java
  * @run main/othervm MHIllegalAccess
  */
--- a/test/java/lang/invoke/RevealDirectTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/invoke/RevealDirectTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @summary verify Lookup.revealDirect on a variety of input handles
+ * @modules java.base/sun.reflect
  * @compile -XDignore.symbol.file RevealDirectTest.java
  * @run junit/othervm -ea -esa test.java.lang.invoke.RevealDirectTest
  *
--- a/test/java/lang/invoke/VMAnonymousClass.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/invoke/VMAnonymousClass.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 8046903
  * @summary VM anonymous class members can't be statically invocable
+ * @modules java.base/sun.misc java.base/jdk.internal.org.objectweb.asm
  * @run junit test.java.lang.invoke.VMAnonymousClass
  */
 package test.java.lang.invoke;
--- a/test/java/lang/invoke/accessProtectedSuper/Test.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/invoke/accessProtectedSuper/Test.java	Thu May 28 16:51:18 2015 -0700
@@ -26,7 +26,7 @@
  * @test
  * @bug 8022718
  * @summary Runtime accessibility checking: protected class, if extended, should be accessible from another package
- *
+ * @modules java.base/jdk.internal.org.objectweb.asm
  * @compile -XDignore.symbol.file BogoLoader.java MethodInvoker.java Test.java anotherpkg/MethodSupplierOuter.java
  * @run main/othervm Test
  */
--- a/test/java/lang/invoke/lambda/LambdaAccessControlDoPrivilegedTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/invoke/lambda/LambdaAccessControlDoPrivilegedTest.java	Thu May 28 16:51:18 2015 -0700
@@ -76,7 +76,7 @@
         doprivJava.delete();
         doprivClass.delete();
         tr = doExec(JAVA_CMD.getAbsolutePath(),
-                    "-Xbootclasspath/p:foo.jar",
+                    "-Xbootclasspath/a:foo.jar",
                     "-cp", ".", "Bar");
         tr.assertZero("testDoPrivileged fails");
         barJava.delete();
--- a/test/java/lang/invoke/lambda/LambdaAsm.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/invoke/lambda/LambdaAsm.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @bug 8027232
  * @summary ensures that j.l.i.InvokerByteCodeGenerator and ASM visitMethodInsn
  * generate  bytecodes with correct constant pool references
+ * @modules java.base/jdk.internal.org.objectweb.asm
+ *          jdk.compiler/com.sun.tools.classfile
  * @compile -XDignore.symbol.file LambdaAsm.java LUtils.java
  * @run main/othervm LambdaAsm
  */
@@ -133,7 +135,7 @@
         int mcount = 0;
         try (DirectoryStream<Path> ds = newDirectoryStream(new File(".").toPath(),
                 // filter in lambda proxy classes
-                "A$I$$Lambda$?.class")) {
+                "A$I$$Lambda$*.class")) {
             for (Path p : ds) {
                 System.out.println(p.toFile());
                 ClassFile cf = ClassFile.read(p.toFile());
--- a/test/java/lang/invoke/lambda/LambdaStackTrace.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/invoke/lambda/LambdaStackTrace.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8025636
  * @summary Synthetic frames should be hidden in exceptions
+ * @modules java.base/jdk.internal.org.objectweb.asm
  * @compile -XDignore.symbol.file LUtils.java LambdaStackTrace.java
  * @run main LambdaStackTrace
  */
--- a/test/java/lang/invoke/lookup/SpecialStatic.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/invoke/lookup/SpecialStatic.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 8032400
  * @summary JSR292: invokeSpecial: InternalError attempting to lookup a method
+ * @modules java.base/jdk.internal.org.objectweb.asm
  * @compile -XDignore.symbol.file SpecialStatic.java
  * @run junit test.java.lang.invoke.lookup.SpecialStatic
  */
--- a/test/java/lang/management/ThreadMXBean/AllThreadIds.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/management/ThreadMXBean/AllThreadIds.java	Thu May 28 16:51:18 2015 -0700
@@ -32,9 +32,30 @@
  */
 
 import java.lang.management.*;
+import java.time.Instant;
 import java.util.concurrent.Phaser;
+import java.util.function.Supplier;
 
 public class AllThreadIds {
+    /**
+     * A supplier wrapper for the delayed format printing.
+     * The supplied value will have to be formatted as <em>$s</em>
+     * @param <T> The wrapped type
+     */
+    private static final class ArgWrapper<T> {
+        private final Supplier<T> val;
+
+        public ArgWrapper(Supplier<T> val) {
+            this.val = val;
+        }
+
+        @Override
+        public String toString() {
+            T resolved = val.get();
+            return resolved != null ? resolved.toString() : null;
+        }
+    }
+
     final static int DAEMON_THREADS = 20;
     final static int USER_THREADS = 5;
     final static int ALL_THREADS = DAEMON_THREADS + USER_THREADS;
@@ -47,15 +68,10 @@
     private static long prevTotalThreadCount = 0;
     private static int prevLiveThreadCount = 0;
     private static int prevPeakThreadCount = 0;
-    private static long curTotalThreadCount = 0;
-    private static int curLiveThreadCount = 0;
-    private static int curPeakThreadCount = 0;
 
     private static final Phaser startupCheck = new Phaser(ALL_THREADS + 1);
 
     private static void printThreadList() {
-        if (!trace) return;
-
         long[] list = mbean.getAllThreadIds();
         for (int i = 1; i <= list.length; i++) {
             System.out.println(i + ": Thread id = " + list[i-1]);
@@ -68,59 +84,13 @@
         }
     }
 
-    private static void fail(String msg) {
-        trace = true;
-        printThreadList();
-        throw new RuntimeException(msg);
+    private static void checkInitialState() throws Exception {
+        updateCounters();
+        checkThreadCount(0, 0);
     }
 
-    private static void checkThreadCount(int numNewThreads,
-                                         int numTerminatedThreads)
-        throws Exception {
-        prevTotalThreadCount = curTotalThreadCount;
-        prevLiveThreadCount = curLiveThreadCount;
-        prevPeakThreadCount = curPeakThreadCount;
-        curTotalThreadCount = mbean.getTotalStartedThreadCount();
-        curLiveThreadCount = mbean.getThreadCount();
-        curPeakThreadCount = mbean.getPeakThreadCount();
-
-        if ((curLiveThreadCount - prevLiveThreadCount) !=
-            (numNewThreads - numTerminatedThreads)) {
-            fail("Unexpected number of live threads: " +
-                " Prev live = " + prevLiveThreadCount +
-                " Current live = " + curLiveThreadCount +
-                " Threads added = " + numNewThreads +
-                " Threads terminated = " + numTerminatedThreads);
-        }
-        if (curPeakThreadCount - prevPeakThreadCount != numNewThreads) {
-            fail("Unexpected number of peak threads: " +
-                " Prev peak = " + prevPeakThreadCount +
-                " Current peak = " + curPeakThreadCount +
-                " Threads added = " + numNewThreads);
-        }
-        if (curTotalThreadCount - prevTotalThreadCount != numNewThreads) {
-            fail("Unexpected number of total threads: " +
-                " Prev Total = " + prevTotalThreadCount +
-                " Current Total = " + curTotalThreadCount +
-                " Threads added = " + numNewThreads);
-        }
-        long[] list = mbean.getAllThreadIds();
-        if (list.length != curLiveThreadCount) {
-            fail("Array length returned by " +
-                "getAllThreadIds() = " + list.length +
-                " not matched count = " + curLiveThreadCount);
-        }
-    }
-
-    public static void main(String args[]) throws Exception {
-        if (args.length > 0 && args[0].equals("trace")) {
-            trace = true;
-        }
-
-        curTotalThreadCount = mbean.getTotalStartedThreadCount();
-        curLiveThreadCount = mbean.getThreadCount();
-        curPeakThreadCount = mbean.getPeakThreadCount();
-        checkThreadCount(0, 0);
+    private static void checkAllThreadsAlive() throws Exception {
+        updateCounters();
 
         // Start all threads and wait to be sure they all are alive
         for (int i = 0; i < ALL_THREADS; i++) {
@@ -133,8 +103,9 @@
         startupCheck.arriveAndAwaitAdvance();
 
         checkThreadCount(ALL_THREADS, 0);
-        printThreadList();
-
+        if (trace) {
+            printThreadList();
+        }
         // Check mbean now. All threads must appear in getAllThreadIds() list
         long[] list = mbean.getAllThreadIds();
 
@@ -165,6 +136,10 @@
         if (trace) {
             System.out.println();
         }
+    }
+
+    private static void checkDaemonThreadsDead() throws Exception {
+        updateCounters();
 
         // Stop daemon threads, wait to be sure they all are dead, and check
         // that they disappeared from getAllThreadIds() list
@@ -179,7 +154,7 @@
         checkThreadCount(0, DAEMON_THREADS);
 
         // Check mbean now
-        list = mbean.getAllThreadIds();
+        long[] list = mbean.getAllThreadIds();
 
         for (int i = 0; i < ALL_THREADS; i++) {
             long expectedId = allThreads[i].getId();
@@ -208,6 +183,10 @@
                 }
             }
         }
+    }
+
+    private static void checkAllThreadsDead() throws Exception {
+        updateCounters();
 
         // Stop all threads and wait to be sure they all are dead
         for (int i = DAEMON_THREADS; i < ALL_THREADS; i++) {
@@ -219,6 +198,127 @@
 
         // and check the thread count
         checkThreadCount(0, ALL_THREADS - DAEMON_THREADS);
+    }
+
+    private static void checkThreadCount(int numNewThreads,
+                                         int numTerminatedThreads)
+        throws Exception {
+
+        checkLiveThreads(numNewThreads, numTerminatedThreads);
+        checkPeakThreads(numNewThreads);
+        checkTotalThreads(numNewThreads);
+        checkThreadIds();
+    }
+
+    private static void checkLiveThreads(int numNewThreads,
+                                         int numTerminatedThreads)
+        throws InterruptedException {
+        int diff = numNewThreads - numTerminatedThreads;
+
+        waitTillEquals(
+            diff + prevLiveThreadCount,
+            ()->(long)mbean.getThreadCount(),
+            "Unexpected number of live threads: " +
+                " Prev live = %1$d Current live = ${provided} Threads added = %2$d" +
+                " Threads terminated = %3$d",
+            ()->prevLiveThreadCount,
+            ()->numNewThreads,
+            ()->numTerminatedThreads
+        );
+    }
+
+    private static void checkPeakThreads(int numNewThreads)
+        throws InterruptedException {
+
+        waitTillEquals(numNewThreads + prevPeakThreadCount,
+            ()->(long)mbean.getPeakThreadCount(),
+            "Unexpected number of peak threads: " +
+                " Prev peak = %1$d Current peak = ${provided} Threads added = %2$d",
+            ()->prevPeakThreadCount,
+            ()->numNewThreads
+        );
+    }
+
+    private static void checkTotalThreads(int numNewThreads)
+        throws InterruptedException {
+
+        waitTillEquals(numNewThreads + prevTotalThreadCount,
+            ()->mbean.getTotalStartedThreadCount(),
+            "Unexpected number of total threads: " +
+                " Prev Total = %1$d Current Total = ${provided} Threads added = %2$d",
+            ()->prevTotalThreadCount,
+            ()->numNewThreads
+        );
+    }
+
+    private static void checkThreadIds() throws InterruptedException {
+        long[] list = mbean.getAllThreadIds();
+
+        waitTillEquals(
+            list.length,
+            ()->(long)mbean.getThreadCount(),
+            "Array length returned by " +
+                "getAllThreadIds() = %1$d not matched count = ${provided}",
+            ()->list.length
+        );
+    }
+
+    /**
+     * Waits till the <em>expectedVal</em> equals to the <em>retrievedVal</em>.
+     * It will report a status message on the first occasion of the value mismatch
+     * and then, subsequently, when the <em>retrievedVal</em> value changes.
+     * @param expectedVal The value to wait for
+     * @param retrievedVal The supplier of the value to check against the <em>expectedVal</em>
+     * @param msgFormat The formatted message to be printed in case of mismatch
+     * @param msgArgs The parameters to the formatted message
+     * @throws InterruptedException
+     */
+    private static void waitTillEquals(long expectedVal, Supplier<Long> retrievedVal,
+                                        String msgFormat, Supplier<Object> ... msgArgs)
+        throws InterruptedException {
+        Object[] args = null;
+
+        long countPrev = -1;
+        while (true) {
+            Long count = retrievedVal.get();
+            if (count == expectedVal) break;
+            if (countPrev == -1 || countPrev != count) {
+                if (args == null) {
+                    args = new Object[msgArgs.length];
+                    for(int i=0; i < msgArgs.length; i++) {
+                        args[i] = new ArgWrapper<>((Supplier<Object>)msgArgs[i]);
+                    }
+                }
+                System.err.format("TS: %s\n", Instant.now());
+                System.err.format(
+                    msgFormat
+                        .replace("${provided}", String.valueOf(count))
+                        .replace("$d", "$s"),
+                    args
+                ).flush();
+                printThreadList();
+                System.err.println("\nRetrying ...\n");
+            }
+            countPrev = count;
+            Thread.sleep(1);
+        }
+    }
+
+    private static void updateCounters() {
+        prevTotalThreadCount = mbean.getTotalStartedThreadCount();
+        prevLiveThreadCount = mbean.getThreadCount();
+        prevPeakThreadCount = mbean.getPeakThreadCount();
+    }
+
+    public static void main(String args[]) throws Exception {
+        if (args.length > 0 && args[0].equals("trace")) {
+            trace = true;
+        }
+
+        checkInitialState();
+        checkAllThreadsAlive();
+        checkDaemonThreadsDead();
+        checkAllThreadsDead();
 
         if (testFailed)
             throw new RuntimeException("TEST FAILED.");
--- a/test/java/lang/reflect/Generics/TestBadSignatures.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/reflect/Generics/TestBadSignatures.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6832374 7052898
  * @summary Test bad signatures get a GenericSignatureFormatError thrown.
  * @author Joseph D. Darcy
+ * @modules java.base/sun.reflect.generics.parser
  */
 
 import java.lang.reflect.*;
--- a/test/java/lang/reflect/Method/invoke/TestPrivateInterfaceMethodReflect.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/lang/reflect/Method/invoke/TestPrivateInterfaceMethodReflect.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 8026213
  * @summary Reflection support for private methods in interfaces
  * @author  Robert Field
+ * @modules java.base/jdk.internal.org.objectweb.asm
  * @run main TestPrivateInterfaceMethodReflect
  */
 
--- a/test/java/net/Authenticator/B4678055.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/Authenticator/B4678055.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4678055
+ * @modules java.base/sun.net.www
  * @library ../../../sun/net/www/httptest/
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main B4678055
--- a/test/java/net/Authenticator/B4722333.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/Authenticator/B4722333.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4722333
+ * @modules java.base/sun.net.www
  * @library ../../../sun/net/www/httptest/
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main B4722333
--- a/test/java/net/Authenticator/B4759514.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/Authenticator/B4759514.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4759514
+ * @modules java.base/sun.net.www
  * @library ../../../sun/net/www/httptest/
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main B4759514
--- a/test/java/net/Authenticator/B4921848.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/Authenticator/B4921848.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4921848
+ * @modules java.base/sun.net.www
  * @library ../../../sun/net/www/httptest/
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main/othervm -Dhttp.auth.preference=basic B4921848
--- a/test/java/net/Authenticator/B4962064.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/Authenticator/B4962064.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4962064
+ * @modules java.base/sun.net.www
  * @library ../../../sun/net/www/httptest/
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main/othervm B4962064
--- a/test/java/net/Authenticator/B6870935.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/Authenticator/B6870935.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6870935
+ * @modules java.base/sun.net.www
  * @run main/othervm -Dhttp.nonProxyHosts="" -Dhttp.auth.digest.validateProxy=true B6870935
  */
 
--- a/test/java/net/Inet4Address/textToNumericFormat.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/Inet4Address/textToNumericFormat.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4749938
  * @summary Bug in the parsing IPv4 literal addresses
+ * @modules java.base/sun.net.spi.nameservice
  * @compile -XDignore.symbol.file=true DummyNameService.java DummyNameServiceDescriptor.java
  * @run main/othervm -Dsun.net.spi.nameservice.provider.1=dummy,oracle textToNumericFormat
 */
--- a/test/java/net/MulticastSocket/SetOutgoingIf.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/MulticastSocket/SetOutgoingIf.java	Thu May 28 16:51:18 2015 -0700
@@ -156,12 +156,13 @@
                 // now check which network interface this packet comes from
                 NetworkInterface from = NetworkInterface.getByInetAddress(packet.getAddress());
                 NetworkInterface shouldbe = nic;
-                if (!from.equals(shouldbe)) {
-                    System.out.println("Packets on group "
+                if (from != null) {
+                    if (!from.equals(shouldbe)) {
+                        System.out.println("Packets on group "
                                         + group + " should come from "
                                         + shouldbe.getName() + ", but came from "
                                         + from.getName());
-                    //throw new RuntimeException("Test failed.");
+                    }
                 }
 
                 mcastsock.leaveGroup(new InetSocketAddress(group, PORT), nic);
--- a/test/java/net/MulticastSocket/TestInterfaces.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/MulticastSocket/TestInterfaces.java	Thu May 28 16:51:18 2015 -0700
@@ -46,6 +46,11 @@
         while (nifs.hasMoreElements()) {
             NetworkInterface ni = (NetworkInterface)nifs.nextElement();
 
+            // JDK-8022963, Skip (Windows) Teredo Tunneling Pseudo-Interface
+            String dName = ni.getDisplayName();
+            if (isWindows && dName != null && dName.contains("Teredo"))
+                continue;
+
             /*
              * Test MulticastSocket.getInterface
              */
@@ -92,10 +97,6 @@
                 continue;
             }
 
-            // JDK-8022963, Skip (Windows) Teredo Tunneling Pseudo-Interface
-            String dName = ni.getDisplayName();
-            if (isWindows && dName != null && dName.contains("Teredo"))
-                continue;
 
             NetworkInterface curr = soc.getNetworkInterface();
             if (!curr.equals(ni)) {
--- a/test/java/net/ProxySelector/LoopbackAddresses.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/ProxySelector/LoopbackAddresses.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 4924226
  * @summary PIT: Can no launch jnlp application via 127.0.0.1 address on the web server
+ * @modules java.base/sun.net.www
  * @library ../../../sun/net/www/httptest/
  * @build ClosedChannelList TestHttpServer HttpTransaction HttpCallback
  * @compile LoopbackAddresses.java
--- a/test/java/net/ProxySelector/ProxyTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/ProxySelector/ProxyTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4696512
  * @summary HTTP client: Improve proxy server configuration and selection
+ * @modules java.base/sun.net.www
  * @library ../../../sun/net/www/httptest/
  * @build ClosedChannelList TestHttpServer HttpTransaction HttpCallback
  * @compile ProxyTest.java
--- a/test/java/net/Socket/HttpProxy.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/Socket/HttpProxy.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6370908
  * @summary Add support for HTTP_CONNECT proxy in Socket class
+ * @modules java.base/sun.net.www
  */
 
 import java.io.IOException;
--- a/test/java/net/URL/PerConnectionProxy.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/URL/PerConnectionProxy.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 4920526
  * @summary Needs per connection proxy support for URLs
+ * @modules java.base/sun.net.www
  * @library ../../../sun/net/www/httptest/
  * @build ClosedChannelList TestHttpServer HttpTransaction HttpCallback
  * @compile PerConnectionProxy.java
--- a/test/java/net/URL/SpecifyHandler.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/URL/SpecifyHandler.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4135031
  * @summary Test new URL contructors that allow specification of a
  *          URLStreamHandler protocol handler.
+ * @modules java.base/sun.net.www.protocol.file
  */
 import java.net.*;
 
--- a/test/java/net/URLConnection/B5052093.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/URLConnection/B5052093.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 5052093
+ * @modules java.base/sun.net.www java.base/sun.net.www.protocol.file
  * @library ../../../sun/net/www/httptest/
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main B5052093
--- a/test/java/net/URLConnection/HandleContentTypeWithAttrs.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/net/URLConnection/HandleContentTypeWithAttrs.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4160200
  * @summary Make sure URLConnection.getContnentHandler
  *     can handle MIME types with attributes
+ * @modules java.base/sun.net.www java.base/sun.net.www.content.text
  */
 import java.net.*;
 import java.io.*;
--- a/test/java/nio/file/Files/InterruptCopy.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/nio/file/Files/InterruptCopy.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 4313887 6993267
  * @summary Unit test for Sun-specific ExtendedCopyOption.INTERRUPTIBLE option
+ * @modules java.base/com.sun.nio.file
  * @library ..
  */
 
--- a/test/java/nio/file/Files/SBC.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/nio/file/Files/SBC.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @bug 4313887
  * @summary Unit test for java.nio.file.Files.newByteChannel
  * @library ..
+ * @modules java.base/com.sun.nio.file
  */
 
 import java.nio.ByteBuffer;
--- a/test/java/nio/file/WatchService/FileTreeModifier.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/nio/file/WatchService/FileTreeModifier.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @bug 4313887 6838333
  * @summary Sanity test for Sun-specific FILE_TREE watch event modifier
  * @library ..
+ * @modules java.base/com.sun.nio.file
  */
 
 import java.nio.file.*;
--- a/test/java/nio/file/WatchService/SensitivityModifier.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/nio/file/WatchService/SensitivityModifier.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 4313887
  * @summary Sanity test for Sun-specific sensitivity level watch event modifier
+ * @modules java.base/com.sun.nio.file
  * @library ..
  * @run main/timeout=240 SensitivityModifier
  * @key randomness
--- a/test/java/nio/file/WatchService/WithSecurityManager.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/nio/file/WatchService/WithSecurityManager.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 4313887
  * @summary Unit test for Watchable#register's permission checks
+ * @modules java.base/com.sun.nio.file
  * @build WithSecurityManager
  * @run main/othervm WithSecurityManager denyAll.policy - fail
  * @run main/othervm WithSecurityManager denyAll.policy tree fail
--- a/test/java/rmi/Naming/DefaultRegistryPort.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/Naming/DefaultRegistryPort.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @summary change in default URL port causes regression in java.rmi.Naming
  * @author Dana Burns
  * @library ../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm DefaultRegistryPort
  */
--- a/test/java/rmi/Naming/LookupIPv6.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/Naming/LookupIPv6.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,10 @@
  *          IPv6 addresses.
  * @bug 4402708
  * @library ../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm -Djava.net.preferIPv6Addresses=true LookupIPv6
  */
--- a/test/java/rmi/Naming/LookupNameWithColon.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/Naming/LookupNameWithColon.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  *          containing embedded ':' characters.
  *
  * @library ../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm LookupNameWithColon
  */
--- a/test/java/rmi/Naming/RmiIsNoScheme.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/Naming/RmiIsNoScheme.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Ann Wollrath
  *
  * @library ../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm RmiIsNoScheme
  */
--- a/test/java/rmi/Naming/UnderscoreHost.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/Naming/UnderscoreHost.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
   * @author Vinod Johnson
   *
   * @library ../testlibrary
+  * @modules java.rmi/sun.rmi.registry
+  *          java.rmi/sun.rmi.server
+  *          java.rmi/sun.rmi.transport
+  *          java.rmi/sun.rmi.transport.tcp
   * @build TestLibrary UnderscoreHost_Stub
   * @run main/othervm UnderscoreHost
  */
--- a/test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @summary Naming assumes '/' is present in relative URL; change in URL causes regression
  * @author Dana Burns
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Legal LegalRegistryNames_Stub
  * @run main/othervm LegalRegistryNames
  */
--- a/test/java/rmi/activation/Activatable/checkActivateRef/CheckActivateRef.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/checkActivateRef/CheckActivateRef.java	Thu May 28 16:51:18 2015 -0700
@@ -36,6 +36,10 @@
  *          functionality is in place
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivateMe CheckActivateRef_Stub
  * @run main/othervm/policy=security.policy/timeout=240 -Djava.rmi.server.ignoreStubClasses=true CheckActivateRef
  * @run main/othervm/policy=security.policy/timeout=240 -Djava.rmi.server.ignoreStubClasses=false CheckActivateRef
--- a/test/java/rmi/activation/Activatable/checkAnnotations/CheckAnnotations.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/checkAnnotations/CheckAnnotations.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Laird Dornin; code borrowed from Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID MyRMI CheckAnnotations_Stub
  * @run main/othervm/policy=security.policy/timeout=480 CheckAnnotations
  */
--- a/test/java/rmi/activation/Activatable/checkImplClassLoader/CheckImplClassLoader.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/checkImplClassLoader/CheckImplClassLoader.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @author Laird Dornin; code borrowed from Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID
  *     MyRMI ActivatableImpl ActivatableImpl ActivatableImpl_Stub
  * @run main/othervm/policy=security.policy/timeout=150 CheckImplClassLoader
--- a/test/java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  *     ActivateMe CheckRegisterInLog_Stub
  * @run main/othervm/policy=security.policy/timeout=240 CheckRegisterInLog
--- a/test/java/rmi/activation/Activatable/createPrivateActivable/CreatePrivateActivatable.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/createPrivateActivable/CreatePrivateActivatable.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @author Laird Dornin
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivateMe
  * @run main/othervm/policy=security.policy/timeout=240 CreatePrivateActivatable
  */
--- a/test/java/rmi/activation/Activatable/downloadParameterClass/DownloadParameterClass.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/downloadParameterClass/DownloadParameterClass.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * @author Peter Jones (much code taken from Ann Wollrath's activation tests)
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  *     Foo FooReceiverImpl FooReceiverImpl_Stub Bar
  * @run main/othervm/policy=security.policy/timeout=240 DownloadParameterClass
--- a/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @author Laird Dornin
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivateMe ElucidateNoSuchMethod_Stub
  * @run main/othervm/policy=security.policy/timeout=240 ElucidateNoSuchMethod
  */
--- a/test/java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @author Laird Dornin
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  *     ActivateMe ForceLogSnapshot_Stub
  * @run main/othervm/policy=security.policy/timeout=640 ForceLogSnapshot
--- a/test/java/rmi/activation/Activatable/inactiveGroup/InactiveGroup.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/inactiveGroup/InactiveGroup.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary ActivateMe InactiveGroup_Stub
  * @run main/othervm/policy=security.policy/timeout=240 InactiveGroup
  */
--- a/test/java/rmi/activation/Activatable/lookupActivationSystem/LookupActivationSystem.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/lookupActivationSystem/LookupActivationSystem.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  * @run main/othervm/timeout=240 LookupActivationSystem
  */
--- a/test/java/rmi/activation/Activatable/nestedActivate/NestedActivate.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/nestedActivate/NestedActivate.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary ActivateMe NestedActivate_Stub
  * @run main/othervm/policy=security.policy/timeout=240 NestedActivate
  */
--- a/test/java/rmi/activation/Activatable/nonExistentActivatable/NonExistentActivatable.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/nonExistentActivatable/NonExistentActivatable.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  *     ActivateMe NonExistentActivatable_Stub
  * @run main/othervm/policy=security.policy/timeout=240 NonExistentActivatable
--- a/test/java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivateMe RestartCrashedService_Stub
  * @run main/othervm/policy=security.policy/timeout=240 RestartCrashedService
  */
--- a/test/java/rmi/activation/Activatable/restartLatecomer/RestartLatecomer.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/restartLatecomer/RestartLatecomer.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  *     RestartLatecomer RestartLatecomer_Stub
  * @run main/othervm/policy=security.policy/timeout=240 RestartLatecomer
--- a/test/java/rmi/activation/Activatable/restartService/RestartService.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/restartService/RestartService.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary ActivateMe RestartService_Stub
  * @run main/othervm/policy=security.policy/timeout=240 RestartService
  */
--- a/test/java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Laird Dornin; code borrowed from Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID
  *     TestSecurityManager RegisteringActivatable ShutdownGracefully_Stub
  * @run main/othervm/policy=security.policy/timeout=700 ShutdownGracefully
--- a/test/java/rmi/activation/Activatable/unregisterInactive/UnregisterInactive.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/Activatable/unregisterInactive/UnregisterInactive.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary ActivateMe UnregisterInactive_Stub
  * @run main/othervm/policy=security.policy/timeout=240 UnregisterInactive
  */
--- a/test/java/rmi/activation/ActivateFailedException/activateFails/ActivateFails.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/ActivateFailedException/activateFails/ActivateFails.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  *     ActivateMe ActivateFails_Stub ShutdownThread
  * @run main/othervm/java.security.policy=security.policy/timeout=240 ActivateFails
--- a/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  *     DownloadActivationGroup MyActivationGroupImpl DownloadActivationGroup_Stub
  * @run main/othervm/policy=security.policy/timeout=240 DownloadActivationGroup
--- a/test/java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,10 @@
  * @author Laird Dornin
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main CheckDefaultGroupName
  */
--- a/test/java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  * @run main/othervm/policy=security.policy/timeout=480 IdempotentActiveGroup
  */
--- a/test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  *     ActivateMe ModifyDescriptor_Stub
  * @run main/othervm/policy=security.policy/timeout=240 ModifyDescriptor
--- a/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,11 @@
  * @author Laird Dornin
  *
  * @library ../../../testlibrary
+ * @modules java.base/sun.security.provider
+ *          java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  *     CanCreateStubs StubClassesPermitted_Stub
  * @run main/othervm/java.security.policy=security.policy/secure=java.lang.SecurityManager/timeout=240 StubClassesPermitted
--- a/test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary ActivateMe
  * @run main/othervm/policy=security.policy UnregisterGroup
  */
--- a/test/java/rmi/activation/CommandEnvironment/SetChildEnv.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/CommandEnvironment/SetChildEnv.java	Thu May 28 16:51:18 2015 -0700
@@ -35,6 +35,10 @@
  * @author Adrian Colley
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  *     Eliza Retireable Doctor Doctor_Stub
  * @run main/othervm/timeout=240/policy=security.policy
--- a/test/java/rmi/activation/log/LogTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/log/LogTest.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,7 @@
  * boundaries
  * @author Ann Wollrath
  *
+ * @modules java.rmi/sun.rmi.log
  * @run main/othervm/timeout=240 LogTest
  */
 
--- a/test/java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,11 @@
  * @author Peter Jones
  *
  * @library ../../testlibrary
+ * @modules java.base/sun.nio.ch
+ *          java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  * @run main/othervm/timeout=240 InheritedChannelNotServerSocket
  */
--- a/test/java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,11 @@
  * @author Ann Wollrath
  *
  * @library ../../testlibrary
+ * @modules java.base/sun.nio.ch
+ *          java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID ActivationLibrary
  * @run main/othervm/timeout=240 RmidViaInheritedChannel
  */
--- a/test/java/rmi/dgc/VMID/CheckVMID.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/dgc/VMID/CheckVMID.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,10 @@
  * @author Ann Wollrath
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm/policy=security.policy CheckVMID
  */
--- a/test/java/rmi/dgc/dgcImplInsulation/DGCImplInsulation.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/dgc/dgcImplInsulation/DGCImplInsulation.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * @author Peter Jones
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary DGCImplInsulation_Stub
  * @run main/othervm/policy=security.policy DGCImplInsulation
  */
--- a/test/java/rmi/invalidName/InvalidName.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/invalidName/InvalidName.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,10 @@
  * @author Laird Dornin
  *
  * @library ../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm InvalidName
  */
--- a/test/java/rmi/registry/altSecurityManager/AltSecurityManager.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/registry/altSecurityManager/AltSecurityManager.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @author Laird Dornin
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary JavaVM RMID TestSecurityManager
  * @run main/othervm AltSecurityManager
  */
--- a/test/java/rmi/registry/classPathCodebase/ClassPathCodebase.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/registry/classPathCodebase/ClassPathCodebase.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,10 @@
  * @author Peter Jones
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Dummy
  * @run main/othervm/policy=security.policy
  *     -Djava.rmi.server.useCodebaseOnly=false ClassPathCodebase
--- a/test/java/rmi/registry/emptyName/EmptyName.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/registry/emptyName/EmptyName.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,10 @@
  * @bug 4399304
  * @summary check that registry allows empty names
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm EmptyName
  */
--- a/test/java/rmi/registry/interfaceHash/InterfaceHash.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/registry/interfaceHash/InterfaceHash.java	Thu May 28 16:51:18 2015 -0700
@@ -36,6 +36,10 @@
  *
  * @author Peter Jones
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary ReferenceRegistryStub
  * @run main/othervm InterfaceHash
  * @key intermittent
--- a/test/java/rmi/registry/multipleRegistries/MultipleRegistries.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/registry/multipleRegistries/MultipleRegistries.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  * @author Ann Wollrath
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm/timeout=240 MultipleRegistries
  */
--- a/test/java/rmi/registry/reexport/Reexport.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/registry/reexport/Reexport.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,10 @@
  * @bug 4120329
  * @summary RMI registry creation is impossible if first attempt fails.
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary JavaVM RegistryRunner RegistryRunner_Stub
  * @run main/othervm Reexport
  */
--- a/test/java/rmi/reliability/benchmark/bench/rmi/Main.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/reliability/benchmark/bench/rmi/Main.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,11 @@
  * @summary The RMI benchmark test. This java class is used to run the test
  *          under JTREG.
  * @library ../../../../testlibrary ../../
+ * @modules java.desktop
+ *          java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary bench.BenchInfo bench.HtmlReporter bench.Util
  * bench.Benchmark bench.Reporter bench.XmlReporter bench.ConfigFormatException
  * bench.Harness bench.TextReporter bench.rmi.BenchServer
--- a/test/java/rmi/reliability/juicer/AppleUserImpl.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/reliability/juicer/AppleUserImpl.java	Thu May 28 16:51:18 2015 -0700
@@ -55,6 +55,10 @@
  * has been reached.
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  *     Apple AppleEvent AppleImpl
  *     Orange OrangeEcho OrangeEchoImpl OrangeImpl
--- a/test/java/rmi/server/RMIClassLoader/delegateBeforePermissionCheck/DelegateBeforePermissionCheck.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/delegateBeforePermissionCheck/DelegateBeforePermissionCheck.java	Thu May 28 16:51:18 2015 -0700
@@ -33,6 +33,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Foo
  * @run main/othervm DelegateBeforePermissionCheck
  */
--- a/test/java/rmi/server/RMIClassLoader/delegateToContextLoader/DelegateToContextLoader.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/delegateToContextLoader/DelegateToContextLoader.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Dummy
  * @run main/othervm/policy=security.policy/timeout=120 DelegateToContextLoader
  */
--- a/test/java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Receiver DownloadArrayClass_Stub Foo
  * @run main/othervm/policy=security.policy DownloadArrayClass
  */
--- a/test/java/rmi/server/RMIClassLoader/getClassAnnotation/NullClass.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/getClassAnnotation/NullClass.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm NullClass
  */
--- a/test/java/rmi/server/RMIClassLoader/getClassLoader/GetClassLoader.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/getClassLoader/GetClassLoader.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Foo
  * @run main/othervm/policy=security.policy GetClassLoader
  */
--- a/test/java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,10 @@
  * @author Laird Dornin
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary FnnClass FnnUnmarshal NonpublicInterface
  *     NonpublicInterface1 PublicInterface PublicInterface1
  * @run main/othervm/policy=security.policy
--- a/test/java/rmi/server/RMIClassLoader/spi/ContextInsulation.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/spi/ContextInsulation.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary ServiceConfiguration TestProvider TestProvider2
  * @run main/othervm/policy=security.policy ContextInsulation
  */
--- a/test/java/rmi/server/RMIClassLoader/spi/DefaultProperty.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/spi/DefaultProperty.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary ServiceConfiguration Foo
  * @run main/othervm/policy=security.policy DefaultProperty
  */
--- a/test/java/rmi/server/RMIClassLoader/spi/Installed.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/spi/Installed.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary ServiceConfiguration TestProvider TestProvider2
  * @run main/othervm/policy=security.policy Installed
  */
--- a/test/java/rmi/server/RMIClassLoader/spi/InvalidProperty.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/spi/InvalidProperty.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary ServiceConfiguration
  * @run main/othervm/policy=security.policy InvalidProperty
  */
--- a/test/java/rmi/server/RMIClassLoader/spi/Property.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/spi/Property.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary ServiceConfiguration TestProvider
  * @run main/othervm/policy=security.policy Property
  */
--- a/test/java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Receiver UseCodebaseOnly_Stub Foo Bar
  * @run main/othervm/policy=security.policy UseCodebaseOnly
  */
--- a/test/java/rmi/server/RMIClassLoader/useCodebaseOnlyDefault/UseCodebaseOnlyDefault.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/useCodebaseOnlyDefault/UseCodebaseOnlyDefault.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary Tests proper parsing and defaulting of the
  * "java.rmi.server.useCodebaseOnly" property.
  *
+ * @modules java.rmi/sun.rmi.server
  * @run main/othervm UseCodebaseOnlyDefault true
  * @run main/othervm -Djava.rmi.server.useCodebaseOnly=xyzzy UseCodebaseOnlyDefault true
  * @run main/othervm -Djava.rmi.server.useCodebaseOnly UseCodebaseOnlyDefault true
--- a/test/java/rmi/server/RMIClassLoader/useGetURLs/UseGetURLs.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMIClassLoader/useGetURLs/UseGetURLs.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Dummy
  * @run main/othervm/policy=security.policy/timeout=120 UseGetURLs
  */
--- a/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Echo EchoImpl EchoImpl_Stub
  * @run main/othervm/policy=security.policy/timeout=360 UseCustomSocketFactory
  */
--- a/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Laird Dornin; code borrowed from Ann Wollrath
  *
  * @library ../../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Compress Hello HelloImpl HelloImpl_Stub
  * @run main/othervm/policy=security.policy/timeout=240 UseCustomSocketFactory
  */
--- a/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary RMID JavaVM Echo EchoImpl EchoImpl_Stub
  * @run main/othervm/policy=security.policy/timeout=120 UseCustomSocketFactory
  */
--- a/test/java/rmi/server/RemoteObject/verifyRemoteEquals/VerifyRemoteEquals.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/RemoteObject/verifyRemoteEquals/VerifyRemoteEquals.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Laird Dornin
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm/timeout=40 VerifyRemoteEquals
  */
--- a/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary JavaVM KeepAliveDuringCall_Stub
  *     ShutdownMonitor Shutdown ShutdownImpl ShutdownImpl_Stub
  * @run main/othervm KeepAliveDuringCall
--- a/test/java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary UnexportLeak_Stub Ping
  * @run main/othervm UnexportLeak
  */
--- a/test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * @author Laird Dornin
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary CheckUnmarshal CheckUnmarshalOnStopThread_Stub
  *     PoisonPill RuntimeExceptionParameter
  * @run main/othervm/timeout=480 CheckUnmarshalOnStopThread
--- a/test/java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency.java	Thu May 28 16:51:18 2015 -0700
@@ -35,6 +35,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary FiniteGCLatency_Stub
  * @run main/othervm/timeout=120 FiniteGCLatency
  */
--- a/test/java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval.java	Thu May 28 16:51:18 2015 -0700
@@ -37,6 +37,10 @@
  * @author Peter Jones
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary JavaVM LeaseCheckInterval_Stub SelfTerminator
  * @run main/othervm LeaseCheckInterval
  */
--- a/test/java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext.java	Thu May 28 16:51:18 2015 -0700
@@ -39,6 +39,10 @@
  * @author Laird Dornin
  *
  * @library ../../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary UnreferencedContext_Stub
  * @run main/othervm/timeout=120 UnreferencedContext
  */
--- a/test/java/rmi/server/clientStackTrace/ClientStackTrace.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/clientStackTrace/ClientStackTrace.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Laird Dornin
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary ClientStackTrace MyRemoteObject_Stub
  * @run main/othervm/policy=security.policy/timeout=120 ClientStackTrace
  */
--- a/test/java/rmi/server/getRemoteClass/GetRemoteClass.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/getRemoteClass/GetRemoteClass.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Laird Dornin
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm GetRemoteClass
  */
--- a/test/java/rmi/server/useCustomRef/UseCustomRef.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/server/useCustomRef/UseCustomRef.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * 4180392
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Ping UseCustomRef_Stub UseCustomRef_Skel
  * @run main/othervm/policy=security.policy/secure=java.rmi.RMISecurityManager/timeout=120 UseCustomRef
  *
--- a/test/java/rmi/transport/checkFQDN/CheckFQDN.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/transport/checkFQDN/CheckFQDN.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,10 @@
  * @author Laird Dornin
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary CheckFQDNClient CheckFQDN_Stub TellServerName
  * @run main/othervm/timeout=120 CheckFQDN
  */
--- a/test/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Laird Dornin
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary CheckLeaseLeak_Stub LeaseLeakClient LeaseLeak
  * @run main/othervm/timeout=240 CheckLeaseLeak
  *
--- a/test/java/rmi/transport/closeServerSocket/CloseServerSocket.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/transport/closeServerSocket/CloseServerSocket.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * @author Peter Jones
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm CloseServerSocket
  */
--- a/test/java/rmi/transport/dgcDeadLock/DGCDeadLock.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/transport/dgcDeadLock/DGCDeadLock.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Laird Dornin
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Test TestImpl TestImpl_Stub
  * @run main/othervm/policy=security.policy/timeout=360 DGCDeadLock
  */
--- a/test/java/rmi/transport/handshakeFailure/HandshakeFailure.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/transport/handshakeFailure/HandshakeFailure.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * @author Peter Jones
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm HandshakeFailure
  */
--- a/test/java/rmi/transport/handshakeTimeout/HandshakeTimeout.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/transport/handshakeTimeout/HandshakeTimeout.java	Thu May 28 16:51:18 2015 -0700
@@ -34,6 +34,10 @@
  * @author Peter Jones
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm HandshakeTimeout
  */
--- a/test/java/rmi/transport/httpSocket/HttpSocketTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/transport/httpSocket/HttpSocketTest.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,11 @@
  * @author Dana Burns
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.proxy
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary HttpSocketTest HttpSocketTest_Stub
  * @run main/othervm/policy=security.policy HttpSocketTest
  */
--- a/test/java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,10 @@
  * @author Peter Jones
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm -Dsun.rmi.transport.connectionTimeout=2000
  *     PinClientSocketFactory
--- a/test/java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,10 @@
  * @author Peter Jones
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm RapidExportUnexport
  */
--- a/test/java/rmi/transport/reuseDefaultPort/ReuseDefaultPort.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/rmi/transport/reuseDefaultPort/ReuseDefaultPort.java	Thu May 28 16:51:18 2015 -0700
@@ -34,6 +34,10 @@
  * @author Peter Jones
  *
  * @library ../../testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm ReuseDefaultPort
  */
--- a/test/java/security/BasicPermission/Wildcard.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/BasicPermission/Wildcard.java	Thu May 28 16:51:18 2015 -0700
@@ -33,6 +33,8 @@
  * @summary Check that BasicPermission subclasses don't throw exception if name
  *          contains wildcard character ("*") but does not signify a
  *          wildcard match
+ * @modules java.base/com.sun.net.ssl
+ *          java.sql
  */
 
 public class Wildcard {
--- a/test/java/security/KeyPairGenerator/SolarisShortDSA.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/KeyPairGenerator/SolarisShortDSA.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 7081411
  * @summary DSA keypair generation affected by Solaris bug
+ * @modules java.base/sun.security.provider
  */
 
 import java.security.KeyPair;
--- a/test/java/security/PermissionCollection/Concurrent.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/PermissionCollection/Concurrent.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4671598
  * @summary PermissionCollection is not properly synchronized
+ * @modules java.rmi/com.sun.rmi.rmid
  */
 
 import java.security.*; // AllPermission, BasicPermission, Permissions
--- a/test/java/security/Policy/GetInstance/GetInstance.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/Policy/GetInstance/GetInstance.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 5100561
  * @bug 6273812
  * @summary Can not explicitly create a java.security.Policy object from a file
+ * @modules java.base/sun.security.provider
  * @build GetInstancePolicySpi GetInstanceProvider
  * @run main/othervm/policy=GetInstance.policy GetInstance
  */
@@ -34,7 +35,6 @@
 
 import java.io.File;
 import java.net.URI;
-import sun.net.www.ParseUtil;
 
 public class GetInstance {
 
--- a/test/java/security/Policy/PolicyProvider/UseSystemClassLoader.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/Policy/PolicyProvider/UseSystemClassLoader.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,7 @@
  * @test
  * @bug 8075706
  * @summary Check that a custom policy provider can be loaded from the classpath
+ * @modules java.base/sun.security.provider
  * @run main/othervm UseSystemClassLoader CUSTOM
  * @run main/othervm UseSystemClassLoader DEFAULT
  * @run main/othervm UseSystemClassLoader NOT_AVAIL
--- a/test/java/security/ProtectionDomain/PreserveCombinerTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/ProtectionDomain/PreserveCombinerTest.java	Thu May 28 16:51:18 2015 -0700
@@ -34,6 +34,7 @@
  * @summary Make sure that JavaSecurityAccess.doIntersectionPrivilege()
  *          is not dropping the information about the domain combiner of
  *          the stack ACC
+ * @modules java.base/sun.misc
  */
 
 public class PreserveCombinerTest {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/java/security/Signature/Offsets.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,251 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.security.InvalidKeyException;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.Signature;
+import java.security.SignatureException;
+import jdk.testlibrary.RandomFactory;
+
+/*
+ * @test
+ * @bug 8050374
+ * @key randomness
+ * @summary This test validates signature verification
+ *          Signature.verify(byte[], int, int). The test uses RandomFactory to
+ *          get random set of clear text data to sign. After the signature
+ *          generation, the test tries to verify signature with the above API
+ *          and passing in different signature offset (0, 33, 66, 99).
+ * @library /lib/testlibrary
+ * @run main Offsets SUN NONEwithDSA
+ * @run main Offsets SUN SHA1withDSA
+ * @run main Offsets SUN SHA224withDSA
+ * @run main Offsets SUN SHA256withDSA
+ */
+public class Offsets {
+
+    private final int size;
+    private final byte[] cleartext;
+    private final PublicKey pubkey;
+    private final Signature signature;
+    private final byte[] signed;
+
+    private Offsets(Signature signature, PublicKey pubkey, PrivateKey privkey,
+            int size, byte[] cleartext) throws InvalidKeyException,
+                SignatureException {
+        this.pubkey = pubkey;
+        this.signature = signature;
+        this.size = size;
+        this.cleartext = cleartext;
+
+        signature.initSign(privkey);
+        signature.update(cleartext, 0, size);
+        signed = signature.sign();
+    }
+
+    int getDataSize() {
+        return size;
+    }
+
+    int getSignatureLength() {
+        return signed.length;
+    }
+
+    byte[] shiftSignData(int offset) {
+        byte[] testSignData = new byte[offset + signed.length];
+        System.arraycopy(signed, 0, testSignData, offset,
+                signed.length);
+        return testSignData;
+    }
+
+    boolean verifySignature(byte[] sigData, int sigOffset, int sigLength,
+            int updateOffset, int updateLength)
+                throws InvalidKeyException, SignatureException {
+        signature.initVerify(pubkey);
+        signature.update(cleartext, updateOffset, updateLength);
+        return signature.verify(sigData, sigOffset, sigLength);
+    }
+
+    static Offsets init(String provider, String algorithm)
+            throws NoSuchAlgorithmException, NoSuchProviderException,
+            InvalidKeyException, SignatureException {
+        // fill the cleartext data with random bytes
+        byte[] cleartext = new byte[100];
+        RandomFactory.getRandom().nextBytes(cleartext);
+
+        // NONEwith requires input to be of 20 bytes
+        int size = algorithm.contains("NONEwith") ? 20 : 100;
+
+        // create signature instance
+        Signature signature = Signature.getInstance(algorithm, provider);
+
+        String keyAlgo;
+        if (algorithm.contains("RSA")) {
+            keyAlgo = "RSA";
+        } else if (algorithm.contains("ECDSA")) {
+            keyAlgo = "EC";
+        } else if (algorithm.contains("DSA")) {
+            keyAlgo = "DSA";
+        } else {
+            throw new RuntimeException("Test doesn't support this signature "
+                    + "algorithm: " + algorithm);
+        }
+
+        KeyPairGenerator kpg = KeyPairGenerator.getInstance(keyAlgo, provider);
+        KeyPair kp = kpg.generateKeyPair();
+        PublicKey pubkey = kp.getPublic();
+        PrivateKey privkey = kp.getPrivate();
+
+        return new Offsets(signature, pubkey, privkey, size, cleartext);
+    }
+
+    public static void main(String[] args) throws NoSuchAlgorithmException,
+            InvalidKeyException, SignatureException {
+        if (args.length < 2) {
+            throw new RuntimeException("Wrong parameters");
+        }
+
+        boolean result = true;
+        try {
+            Offsets test = init(args[0], args[1]);
+
+            // We are trying 3 different offsets, data size has nothing to do
+            // with signature length
+            for (int chunk = 3; chunk > 0; chunk--) {
+                int signOffset = test.getDataSize() / chunk;
+
+                System.out.println("Running test with offset " + signOffset);
+                byte[] signData = test.shiftSignData(signOffset);
+
+                boolean success = test.verifySignature(signData, signOffset,
+                        test.getSignatureLength(), 0, test.getDataSize());
+
+                if (success) {
+                    System.out.println("Successfully verified with offset "
+                            + signOffset);
+                } else {
+                    System.out.println("Verification failed with offset "
+                            + signOffset);
+                    result = false;
+                }
+            }
+
+            // save signature to offset 0
+            byte[] signData = test.shiftSignData(0);
+
+            // Negative tests
+
+            // Test signature offset 0.
+            // Wrong test data will be passed to update,
+            // so signature verification should fail.
+            for (int chunk = 3; chunk > 0; chunk--) {
+                int dataOffset = (test.getDataSize() - 1) / chunk;
+                boolean success;
+                try {
+                    success = test.verifySignature(signData, 0,
+                            test.getSignatureLength(), dataOffset,
+                            (test.getDataSize() - dataOffset));
+                } catch (SignatureException e) {
+                    // Since we are trying different data size, it can throw
+                    // SignatureException
+                    success = false;
+                }
+
+                if (!success) {
+                    System.out.println("Signature verification failed "
+                            + "as expected, with data offset " + dataOffset
+                            + " and length "
+                            + (test.getDataSize() - dataOffset));
+                } else {
+                    System.out.println("Signature verification "
+                            + "should not succeed, with data offset "
+                            + dataOffset + " and length "
+                            + (test.getDataSize() - dataOffset));
+                    result = false;
+                }
+            }
+
+            // Tests with manipulating offset and length
+            result &= Offsets.checkFailure(test, signData, -1,
+                    test.getSignatureLength());
+
+            result &= Offsets.checkFailure(test, signData, 0,
+                    test.getSignatureLength() - 1);
+
+            result &= Offsets.checkFailure(test, signData,
+                    test.getSignatureLength() + 1, test.getSignatureLength());
+
+            result &= Offsets.checkFailure(test, signData, 0,
+                    test.getSignatureLength() + 1);
+
+            result &= Offsets.checkFailure(test, signData, 0, 0);
+
+            result &= Offsets.checkFailure(test, signData, 0, -1);
+
+            result &= Offsets.checkFailure(test, signData,
+                    2147483646, test.getSignatureLength());
+
+            result &= Offsets.checkFailure(test, null, 0,
+                    test.getSignatureLength());
+        } catch (NoSuchProviderException nspe) {
+            System.out.println("No such provider: " + nspe);
+        }
+
+        if (!result) {
+            throw new RuntimeException("Some test cases failed");
+        }
+    }
+
+    static boolean checkFailure(Offsets test, byte[] signData, int offset,
+            int length) {
+        boolean success;
+        try {
+            success = test.verifySignature(signData, offset, length, 0,
+                    test.getDataSize());
+        } catch (IllegalArgumentException | SignatureException e) {
+            System.out.println("Expected exception: " + e);
+            success = false;
+        } catch (InvalidKeyException e) {
+            System.out.println("Unexpected exception: " + e);
+            return false;
+        }
+
+        if (!success) {
+            System.out.println("Signature verification failed as expected, "
+                    + "with signature offset " + offset + " and length "
+                    + length);
+            return true;
+        } else {
+            System.out.println("Signature verification should not succeed, "
+                    + "with signature offset " + offset + " and length "
+                    + length);
+            return false;
+        }
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/java/security/SignedObject/Chain.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,216 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.security.Signature;
+import java.security.SignedObject;
+import java.security.KeyPairGenerator;
+import java.security.KeyPair;
+import java.security.NoSuchProviderException;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.util.Arrays;
+
+/*
+ * @test
+ * @bug 8050374
+ * @summary Verify a chain of signed objects
+ */
+public class Chain {
+
+    static enum KeyAlg {
+        RSA("RSA"),
+        DSA("DSA"),
+        EC("EC");
+
+        final String name;
+
+        KeyAlg(String alg) {
+            this.name = alg;
+        }
+    }
+
+    static enum Provider {
+        Default("default"),
+        SunRsaSign("SunRsaSign"),
+        Sun("SUN"),
+        SunEC("SunEC"),
+        SunJSSE("SunJSSE"),
+        SunMSCAPI("SunMSCAPI");
+
+        final String name;
+
+        Provider(String name) {
+            this.name = name;
+        }
+    }
+
+    static enum SigAlg {
+        MD2withRSA("MD2withRSA"),
+        MD5withRSA("md5withRSA"),
+
+        SHA1withDSA("SHA1withDSA"),
+        SHA224withDSA("SHA224withDSA"),
+        SHA256withDSA("SHA256withDSA"),
+
+        SHA1withRSA("Sha1withrSA"),
+        SHA224withRSA("SHA224withRSA"),
+        SHA256withRSA("SHA256withRSA"),
+        SHA384withRSA("SHA384withRSA"),
+        SHA512withRSA("SHA512withRSA"),
+
+        SHA1withECDSA("SHA1withECDSA"),
+        SHA256withECDSA("SHA256withECDSA"),
+        SHA224withECDSA("SHA224withECDSA"),
+        SHA384withECDSA("SHA384withECDSA"),
+        SHA512withECDSA("SHA512withECDSA"),
+
+        MD5andSHA1withRSA("MD5andSHA1withRSA");
+
+        final String name;
+
+        SigAlg(String name) {
+            this.name = name;
+        }
+    }
+
+    static class Test {
+        final Provider provider;
+        final KeyAlg keyAlg;
+        final SigAlg sigAlg;
+
+        Test(SigAlg sigAlg, KeyAlg keyAlg, Provider privider) {
+            this.provider = privider;
+            this.keyAlg = keyAlg;
+            this.sigAlg = sigAlg;
+        }
+    }
+
+    private static final Test[] tests = {
+        new Test(SigAlg.SHA1withDSA, KeyAlg.DSA, Provider.Default),
+        new Test(SigAlg.MD2withRSA, KeyAlg.RSA, Provider.Default),
+        new Test(SigAlg.MD5withRSA, KeyAlg.RSA, Provider.Default),
+        new Test(SigAlg.SHA1withRSA, KeyAlg.RSA, Provider.Default),
+        new Test(SigAlg.SHA1withDSA, KeyAlg.DSA, Provider.Sun),
+        new Test(SigAlg.SHA224withDSA, KeyAlg.DSA, Provider.Sun),
+        new Test(SigAlg.SHA256withDSA, KeyAlg.DSA, Provider.Sun),
+    };
+
+    private static final String str = "to-be-signed";
+    private static final int N = 3;
+
+    public static void main(String argv[]) {
+        boolean result = Arrays.stream(tests).allMatch((test) -> runTest(test));
+        if(result) {
+            System.out.println("All tests passed");
+        } else {
+            throw new RuntimeException("Some tests failed");
+        }
+    }
+
+    static boolean runTest(Test test) {
+        System.out.format("Test: provider = %s, signature algorithm = %s, "
+                + "key algorithm = %s\n",
+                test.provider, test.sigAlg, test.keyAlg);
+        try {
+            // Generate all private/public key pairs
+            PrivateKey[] privKeys = new PrivateKey[N];
+            PublicKey[] pubKeys = new PublicKey[N];
+            PublicKey[] anotherPubKeys = new PublicKey[N];
+            KeyPairGenerator kpg = KeyPairGenerator.getInstance(
+                    test.keyAlg.name);
+            for (int j=0; j < N; j++) {
+                KeyPair kp = kpg.genKeyPair();
+                KeyPair anotherKp = kpg.genKeyPair();
+                privKeys[j] = kp.getPrivate();
+                pubKeys[j] = kp.getPublic();
+                anotherPubKeys[j] = anotherKp.getPublic();
+
+                if (Arrays.equals(pubKeys[j].getEncoded(),
+                        anotherPubKeys[j].getEncoded())) {
+                    System.out.println("Failed: it should not get "
+                            + "the same pair of public key");
+                    return false;
+                }
+            }
+
+            Signature signature;
+            if (test.provider != Provider.Default) {
+                signature = Signature.getInstance(test.sigAlg.name,
+                        test.provider.name);
+            } else {
+                signature = Signature.getInstance(test.sigAlg.name);
+            }
+
+            // Create a chain of signed objects
+            SignedObject[] objects = new SignedObject[N];
+            objects[0] = new SignedObject(str, privKeys[0], signature);
+            for (int j = 1; j < N; j++) {
+                objects[j] = new SignedObject(objects[j - 1], privKeys[j],
+                        signature);
+            }
+
+            // Verify the chain
+            int n = objects.length - 1;
+            SignedObject object = objects[n];
+            do {
+                if (!object.verify(pubKeys[n], signature)) {
+                    System.out.println("Failed: verification failed, n = " + n);
+                    return false;
+                }
+
+                if (object.verify(anotherPubKeys[n], signature)) {
+                    System.out.println("Failed: verification should not "
+                            + "succeed with wrong public key, n = " + n);
+                    return false;
+                }
+
+                object = (SignedObject) object.getObject();
+                n--;
+            } while (n > 0);
+
+            System.out.println("signed data: " + object.getObject());
+            if (!str.equals(object.getObject())) {
+                System.out.println("Failed: signed data is not equal to "
+                        + "original one");
+                return false;
+            }
+
+            System.out.println("Test passed");
+            return true;
+        } catch (NoSuchProviderException nspe) {
+            if (test.provider == Provider.SunMSCAPI
+                    && !System.getProperty("os.name").startsWith("Windows")) {
+                System.out.println("SunMSCAPI is available only on Windows: "
+                        + nspe);
+                return true;
+            }
+            System.out.println("Unexpected exception: " + nspe);
+            return false;
+        } catch (Exception e) {
+            System.out.println("Unexpected exception: " + e);
+            e.printStackTrace(System.out);
+            return false;
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/java/security/SignedObject/Copy.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.io.Serializable;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.Signature;
+import java.security.SignedObject;
+
+/*
+ * @test
+ * @bug 8050374
+ * @summary Checks if a signed object is a copy of an original object
+ */
+public class Copy {
+
+    private static final String DSA = "DSA";
+    private static final int KEY_SIZE = 512;
+    private static final int MAGIC = 123;
+
+    public static void main(String args[]) throws Exception {
+        KeyPairGenerator kg = KeyPairGenerator.getInstance(DSA);
+        kg.initialize(KEY_SIZE);
+        KeyPair kp = kg.genKeyPair();
+
+        Signature signature = Signature.getInstance(DSA);
+        Test original = new Test();
+        SignedObject so = new SignedObject(original, kp.getPrivate(),
+                signature);
+        System.out.println("Signature algorithm: " + so.getAlgorithm());
+
+        signature = Signature.getInstance(DSA, "SUN");
+        if (!so.verify(kp.getPublic(), signature)) {
+            throw new RuntimeException("Verification failed");
+        }
+
+        kg = KeyPairGenerator.getInstance(DSA);
+        kg.initialize(KEY_SIZE);
+        kp = kg.genKeyPair();
+
+        if (so.verify(kp.getPublic(), signature)) {
+            throw new RuntimeException("Unexpected success");
+        }
+
+        Object copy = so.getObject();
+        if (!original.equals(copy)) {
+            throw new RuntimeException("Signed object is not equal "
+                    + "to original one: " + copy);
+        }
+
+        /*
+         * The signed object is a copy of an original one.
+         * Once the copy is made, further manipulation
+         * of the original object shouldn't has any effect on the copy.
+         */
+        original.set(MAGIC - 1);
+        copy = so.getObject();
+        if (original.equals(copy)) {
+            throw new RuntimeException("Signed object is not a copy "
+                    + "of original one: " + copy);
+        }
+
+        System.out.println("Test passed");
+    }
+
+    private static class Test implements Serializable {
+        private int number = MAGIC;
+
+        public int get() {
+            return number;
+        }
+
+        public void set(int magic) {
+            this.number = magic;
+        }
+
+        @Override
+        public int hashCode() {
+            return number;
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (obj == null) {
+                return false;
+            }
+
+            if (!(obj instanceof Test)) {
+                return false;
+            }
+
+            Test other = (Test) obj;
+            return number == other.number;
+        }
+
+        @Override
+        public String toString() {
+            return "" + number;
+        }
+    }
+}
+
+
--- a/test/java/security/cert/CertPathBuilder/selfIssued/DisableRevocation.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/cert/CertPathBuilder/selfIssued/DisableRevocation.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,7 @@
  * @bug 6852744
  * @summary PIT b61: PKI test suite fails because self signed certificates
  *          are being rejected
+ * @modules java.base/sun.security.util
  * @run main/othervm DisableRevocation subca
  * @run main/othervm DisableRevocation subci
  * @run main/othervm DisableRevocation alice
--- a/test/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,7 @@
  * @bug 6852744
  * @summary PIT b61: PKI test suite fails because self signed certificates
  *          are being rejected
+ * @modules java.base/sun.security.util
  * @run main/othervm KeyUsageMatters subca
  * @run main/othervm KeyUsageMatters subci
  * @run main/othervm KeyUsageMatters alice
--- a/test/java/security/cert/CertPathBuilder/selfIssued/StatusLoopDependency.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/cert/CertPathBuilder/selfIssued/StatusLoopDependency.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,7 @@
  * @bug 6852744
  * @summary PIT b61: PKI test suite fails because self signed certificates
  *          are being rejected
+ * @modules java.base/sun.security.util
  * @run main/othervm StatusLoopDependency subca
  * @run main/othervm StatusLoopDependency subci
  * @run main/othervm StatusLoopDependency alice
--- a/test/java/security/cert/CertPathValidator/trustAnchor/ValidateNC.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/cert/CertPathValidator/trustAnchor/ValidateNC.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,7 @@
  *      CertPathValidator.validate() and CertPathBuilder.build() throw an
  *      InvalidAlgorithmParameterException if any of the TrustAnchors specified
  *      contain nameConstraints
+ * @modules java.base/sun.security.util
  */
 import java.io.File;
 import java.io.FileInputStream;
--- a/test/java/security/cert/CertificateRevokedException/Basic.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/security/cert/CertificateRevokedException/Basic.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4946388
  * @summary Unit test for CertificateRevokedException
+ * @modules java.base/sun.security.x509
  */
 
 import java.io.ByteArrayInputStream;
--- a/test/java/text/Bidi/Bug6850113.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/text/Bidi/Bug6850113.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
  * @test
  * @bug 6850113
  * @summary Verify the return value of digit() for some digits.
+ * @modules java.base/sun.text.normalizer
  * @compile -XDignore.symbol.file=true Bug6850113.java
  * @run main Bug6850113
  */
--- a/test/java/time/TEST.properties	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/time/TEST.properties	Thu May 28 16:51:18 2015 -0700
@@ -1,3 +1,4 @@
 # Threeten test uses TestNG
 TestNG.dirs = .
 othervm.dirs = tck/java/time/chrono test/java/time/chrono test/java/time/format
+lib.dirs = ../../lib/testlibrary
--- a/test/java/time/test/java/time/format/TestZoneTextPrinterParser.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/time/test/java/time/format/TestZoneTextPrinterParser.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,10 +42,17 @@
 import java.util.Random;
 import java.util.Set;
 import java.util.TimeZone;
+import jdk.testlibrary.RandomFactory;
 
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
+/*
+ * @test
+ * @bug 8081022
+ * @key randomness
+ */
+
 /**
  * Test ZoneTextPrinterParser
  */
@@ -59,8 +66,8 @@
     }
 
     public void test_printText() {
-        Random r = new Random();
-        int N = 50;
+        Random r = RandomFactory.getRandom();
+        int N = 8;
         Locale[] locales = Locale.getAvailableLocales();
         Set<String> zids = ZoneRulesProvider.getAvailableZoneIds();
         ZonedDateTime zdt = ZonedDateTime.now();
--- a/test/java/util/Calendar/Bug8007038.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/Calendar/Bug8007038.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 8007038
  * @summary Verify ArrayIndexOutOfBoundsException is not thrown on
  *     on calling localizedDateTime().print() with JapaneseChrono
+ * @modules java.base/sun.util.locale.provider
  * @compile -XDignore.symbol.file Bug8007038.java
  * @run main Bug8007038
  */
--- a/test/java/util/Calendar/CldrFormatNamesTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/Calendar/CldrFormatNamesTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,9 +24,10 @@
 /*
  * @test
  * @bug 8004489 8006509
+ * @summary Unit test for CLDR FormatData resources
+ * @modules java.base/sun.util.locale.provider
  * @compile -XDignore.symbol.file CldrFormatNamesTest.java
  * @run main/othervm -Djava.locale.providers=CLDR CldrFormatNamesTest
- * @summary Unit test for CLDR FormatData resources
  */
 
 import java.util.*;
--- a/test/java/util/Formatter/Basic.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/Formatter/Basic.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,7 @@
  *      6344623 6369500 6534606 6282094 6286592 6476425 5063507 6469160 6476168
  *      8059175
  *
+ * @modules java.base/sun.misc
  * @run shell/timeout=240 Basic.sh
  */
 
--- a/test/java/util/Locale/Bug6989440.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/Locale/Bug6989440.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6989440
  * @summary Verify ConcurrentModificationException is not thrown with multiple
  *     thread accesses.
+ * @modules java.base/sun.util.locale.provider
  * @compile -XDignore.symbol.file=true Bug6989440.java
  * @run main Bug6989440
  */
--- a/test/java/util/Locale/Bug8004240.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/Locale/Bug8004240.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8004240
  * @summary Verify that getAdapterPreference returns an unmodifiable list.
+ * @modules java.base/sun.util.locale.provider
  * @compile -XDignore.symbol.file Bug8004240.java
  * @run main Bug8004240
  */
--- a/test/java/util/jar/JarInputStream/ExtraFileInMetaInf.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/jar/JarInputStream/ExtraFileInMetaInf.java	Thu May 28 16:51:18 2015 -0700
@@ -23,8 +23,10 @@
 
 /*
  * @test
- *  @bug 8021788
- *  @summary JarInputStream doesn't provide certificates for some file under META-INF
+ * @bug 8021788
+ * @summary JarInputStream doesn't provide certificates for some file under META-INF
+ * @modules java.base/sun.security.tools.keytool
+ *          jdk.jartool/sun.security.tools.jarsigner
  */
 
 import java.util.jar.*;
--- a/test/java/util/jar/Manifest/CreateManifest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/jar/Manifest/CreateManifest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 7148584
  * @summary Jar tools fails to generate manifest correctly when boundary condition hit
+ * @modules jdk.jartool/sun.tools.jar
  * @compile -XDignore.symbol.file=true CreateManifest.java
  * @run main CreateManifest
  */
--- a/test/java/util/logging/CustomLogManagerTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/logging/CustomLogManagerTest.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,7 @@
  * @bug 8005615 8006104
  * @summary Add loggers to custom log manager
  *
+ * @modules java.base/sun.util.logging
  * @compile -XDignore.symbol.file CustomLogManagerTest.java CustomLogManager.java
  * @run main/othervm -Djava.util.logging.manager=CustomLogManager CustomLogManagerTest
  */
--- a/test/java/util/logging/LogManager/RootLogger/setLevel/TestRootLoggerLevel.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/logging/LogManager/RootLogger/setLevel/TestRootLoggerLevel.java	Thu May 28 16:51:18 2015 -0700
@@ -35,6 +35,7 @@
  * @test
  * @bug 8026499
  * @summary checks that Logger.getLogger("").setLevel() is working correctly.
+ * @modules java.base/sun.util.logging
  * @build TestRootLoggerLevel
  * @run main/othervm -Dtest.security=on TestRootLoggerLevel
  * @run main/othervm -Dtest.security=off TestRootLoggerLevel
--- a/test/java/util/logging/LogManagerAppContextDeadlock.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/logging/LogManagerAppContextDeadlock.java	Thu May 28 16:51:18 2015 -0700
@@ -41,6 +41,7 @@
  * @bug 8065991
  * @summary check that when LogManager is initialized, a deadlock similar
  *          to that described in 8065709 will not occur.
+ * @modules java.base/sun.misc
  * @run main/othervm LogManagerAppContextDeadlock UNSECURE
  * @run main/othervm LogManagerAppContextDeadlock SECURE
  *
--- a/test/java/util/logging/LoggingDeadlock4.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/logging/LoggingDeadlock4.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug     6977677 8004928
  * @summary Deadlock between LogManager.<clinit> and Logger.getLogger()
  * @author  Daniel D. Daugherty
+ * @modules java.base/sun.util.logging
  * @compile -XDignore.symbol.file LoggingDeadlock4.java
  * @run main/othervm/timeout=15 LoggingDeadlock4
  */
--- a/test/java/util/logging/RootLogger/RootLevelInConfigFile.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/logging/RootLogger/RootLevelInConfigFile.java	Thu May 28 16:51:18 2015 -0700
@@ -42,6 +42,7 @@
  * @bug 8030850
  * @summary Tests that setting .level=FINEST for the root logger in logging
  *      configuration file does work.
+ * @modules java.base/sun.misc
  * @run main/othervm RootLevelInConfigFile
  *
  * @author danielfuchs
--- a/test/java/util/logging/SimpleLogManager.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/logging/SimpleLogManager.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @summary A LogManager subclass overrides its own implementation of named
  *          logger (see the subclassing information in the Logger class specification)
  *
+ * @modules java.base/sun.util.logging
  * @compile -XDignore.symbol.file CustomLogManager.java SimpleLogManager.java
  * @run main/othervm -Djava.util.logging.manager=SimpleLogManager SimpleLogManager
  */
--- a/test/java/util/logging/TestAppletLoggerContext.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/logging/TestAppletLoggerContext.java	Thu May 28 16:51:18 2015 -0700
@@ -42,6 +42,7 @@
  * @summary  NPE when using Logger.getAnonymousLogger or
  *           LogManager.getLogManager().getLogger
  *
+ * @modules java.base/sun.misc
  * @run main/othervm -Dtest.security=off TestAppletLoggerContext LoadingApplet
  * @run main/othervm -Dtest.security=on TestAppletLoggerContext  LoadingApplet
  * @run main/othervm -Dtest.security=off TestAppletLoggerContext LoadingMain
--- a/test/java/util/logging/TestGetLoggerNPE.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/logging/TestGetLoggerNPE.java	Thu May 28 16:51:18 2015 -0700
@@ -35,6 +35,7 @@
  *
  * @summary NPE with logging while launching webstart
  *
+ * @modules java.base/sun.misc
  * @build TestGetLoggerNPE
  * @run main/othervm TestGetLoggerNPE getLogger
  * @run main/othervm TestGetLoggerNPE getLogManager
--- a/test/java/util/logging/TestLoggerWeakRefLeak.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/logging/TestLoggerWeakRefLeak.java	Thu May 28 16:51:18 2015 -0700
@@ -38,7 +38,8 @@
  * @bug 6942989
  * @summary Check for WeakReference leak in Logger and anonymous Logger objects
  * @library /lib/testlibrary
- * @build jdk.testlibrary.*
+ * @modules jdk.attach/sun.tools.attach
+ * @build jdk.testlibrary.ProcessTools
  * @run main/othervm TestLoggerWeakRefLeak Logger
  * @run main/othervm TestLoggerWeakRefLeak AnonymousLogger
  */
--- a/test/java/util/logging/TestMainAppContext.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/java/util/logging/TestMainAppContext.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,7 @@
  * @bug 8026404
  * @summary checks that calling getLogger() from a Thread whose ThreadGroup is
  *          a child of the main root group doesn't throw an exception.
+ * @modules java.desktop/sun.awt
  * @build TestMainAppContext
  * @run main/othervm TestMainAppContext
  * @author danielfuchs
--- a/test/javax/management/remote/mandatory/notif/ListenerScaleTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/management/remote/mandatory/notif/ListenerScaleTest.java	Thu May 28 16:51:18 2015 -0700
@@ -21,12 +21,16 @@
  * questions.
  */
 
-/*
+/**
  * @test
  * @bug 6338874
  * @summary Check that notification dispatch is not linear in number of MBeans.
  * @author Eamonn McManus
  * @modules java.management
+ *
+ * @library /lib/testlibrary
+ * @run build jdk.testlibrary.* ListenerScaleTest
+ * @run main ListenerScaleTest
  */
 
 /*
@@ -67,6 +71,8 @@
 import javax.management.remote.JMXConnectorServerFactory;
 import javax.management.remote.JMXServiceURL;
 
+import jdk.testlibrary.Platform;
+
 public class ListenerScaleTest {
     private static final int WARMUP_WITH_ONE_MBEAN = 1000;
     private static final int NOTIFS_TO_TIME = 100;
@@ -126,6 +132,10 @@
         };
 
     public static void main(String[] args) throws Exception {
+        if (Platform.isDebugBuild()) {
+            System.out.println("Running on a debug build. Performance test not applicable. Skipping.");
+            return;
+        }
         MBeanServer mbs = MBeanServerFactory.newMBeanServer();
         Sender sender = new Sender();
         mbs.registerMBean(sender, testObjectName);
--- a/test/javax/net/ssl/FixingJavadocs/ComURLNulls.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/FixingJavadocs/ComURLNulls.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,8 @@
  * @summary Need to revisit the javadocs for JSSE, especially the
  *      promoted classes, and HttpsURLConnection.getCipherSuite throws
  *      NullPointerException
+ * @modules java.base/com.sun.net.ssl
+ *          java.base/com.sun.net.ssl.internal.www.protocol.https
  * @run main/othervm ComURLNulls
  *
  *     SunJSSE does not support dynamic system properties, no way to re-use
--- a/test/javax/net/ssl/GetInstance.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/GetInstance.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary verify getInstance() works using Provider.getService()
  *          Export "PKIX" as the standard algorithm name of KeyManagerFactory
  * @author Andreas Sterbenz
+ * @modules java.base/com.sun.net.ssl
  */
 
 import java.security.*;
--- a/test/javax/net/ssl/SSLSession/CheckMyTrustedKeystore.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/SSLSession/CheckMyTrustedKeystore.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,7 @@
  * @bug 4329114
  * @summary Need better way of reflecting the reason when a chain is
  *      rejected as untrusted.
+ * @modules java.base/com.sun.net.ssl
  * @ignore JSSE supports algorithm constraints with CR 6916074,
  *      need to update this test case in JDK 7 soon
  * @run main/othervm CheckMyTrustedKeystore
--- a/test/javax/net/ssl/ServerName/SSLEngineExplorer.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLEngineExplorer.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../SSLEngine ../templates
+ * @modules java.base/sun.misc
  * @build SSLEngineService SSLCapabilities SSLExplorer
  * @run main/othervm SSLEngineExplorer SSLv2Hello,SSLv3
  * @run main/othervm SSLEngineExplorer SSLv3
--- a/test/javax/net/ssl/ServerName/SSLEngineExplorerMatchedSNI.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLEngineExplorerMatchedSNI.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../SSLEngine ../templates
+ * @modules java.base/sun.misc
  * @build SSLEngineService SSLCapabilities SSLExplorer
  * @run main/othervm SSLEngineExplorerMatchedSNI www.example.com
  *     www\.example\.com
--- a/test/javax/net/ssl/ServerName/SSLEngineExplorerUnmatchedSNI.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLEngineExplorerUnmatchedSNI.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../SSLEngine ../templates
+ * @modules java.base/sun.misc
  * @build SSLEngineService SSLCapabilities SSLExplorer
  * @run main/othervm SSLEngineExplorerUnmatchedSNI www.example.com
  *                                                 www\.example\.org
--- a/test/javax/net/ssl/ServerName/SSLEngineExplorerWithCli.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLEngineExplorerWithCli.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../SSLEngine ../templates
+ * @modules java.base/sun.misc
  * @build SSLEngineService SSLCapabilities SSLExplorer
  * @run main/othervm SSLEngineExplorerWithCli
  */
--- a/test/javax/net/ssl/ServerName/SSLEngineExplorerWithSrv.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLEngineExplorerWithSrv.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../SSLEngine ../templates
+ * @modules java.base/sun.misc
  * @build SSLEngineService SSLCapabilities SSLExplorer
  * @run main/othervm SSLEngineExplorerWithSrv
  */
--- a/test/javax/net/ssl/ServerName/SSLSocketExplorer.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLSocketExplorer.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../templates
+ * @modules java.base/sun.misc
  * @build SSLCapabilities SSLExplorer
  * @run main/othervm SSLSocketExplorer SSLv2Hello,SSLv3
  * @run main/othervm SSLSocketExplorer SSLv3
--- a/test/javax/net/ssl/ServerName/SSLSocketExplorerFailure.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLSocketExplorerFailure.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../templates
+ * @modules java.base/sun.misc
  * @build SSLCapabilities SSLExplorer
  * @run main/othervm SSLSocketExplorerFailure SSLv2Hello,SSLv3
  * @run main/othervm SSLSocketExplorerFailure SSLv3
--- a/test/javax/net/ssl/ServerName/SSLSocketExplorerMatchedSNI.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLSocketExplorerMatchedSNI.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../templates
+ * @modules java.base/sun.misc
  * @build SSLCapabilities SSLExplorer
  * @run main/othervm SSLSocketExplorerMatchedSNI www.example.com
  *     www\.example\.com
--- a/test/javax/net/ssl/ServerName/SSLSocketExplorerUnmatchedSNI.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLSocketExplorerUnmatchedSNI.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../templates
+ * @modules java.base/sun.misc
  * @build SSLCapabilities SSLExplorer
  * @run main/othervm SSLSocketExplorerUnmatchedSNI www.example.com
  *                                                 www\.example\.org
--- a/test/javax/net/ssl/ServerName/SSLSocketExplorerWithCliSNI.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLSocketExplorerWithCliSNI.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../templates
+ * @modules java.base/sun.misc
  * @build SSLCapabilities SSLExplorer
  * @run main/othervm SSLSocketExplorerWithCliSNI
  */
--- a/test/javax/net/ssl/ServerName/SSLSocketExplorerWithSrvSNI.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ServerName/SSLSocketExplorerWithSrvSNI.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @bug 7068321
  * @summary Support TLS Server Name Indication (SNI) Extension in JSSE Server
  * @library ../templates
+ * @modules java.base/sun.misc
  * @build SSLCapabilities SSLExplorer
  * @run main/othervm SSLSocketExplorerWithSrvSNI
  */
--- a/test/javax/net/ssl/TLS/TestJSSE.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/TLS/TestJSSE.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,8 @@
  * @test
  * @bug 8049429
  * @library ../../../../lib/testlibrary/
+ * @modules java.management
+ *          jdk.crypto.ec/sun.security.ec
  * @build jdk.testlibrary.Utils
  * @compile CipherTestUtils.java JSSEClient.java JSSEServer.java
  * @summary Test that all cipher suites work in all versions and all client
--- a/test/javax/net/ssl/TLSv12/ShortRSAKeyGCM.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/TLSv12/ShortRSAKeyGCM.java	Thu May 28 16:51:18 2015 -0700
@@ -32,6 +32,7 @@
  * @test
  * @bug 7030966
  * @summary Support AEAD CipherSuites
+ * @modules java.base/sun.misc
  * @run main/othervm ShortRSAKeyGCM PKIX TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  * @run main/othervm ShortRSAKeyGCM PKIX TLS_RSA_WITH_AES_128_GCM_SHA256
  * @run main/othervm ShortRSAKeyGCM PKIX TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
--- a/test/javax/net/ssl/ciphersuites/DisabledAlgorithms.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/net/ssl/ciphersuites/DisabledAlgorithms.java	Thu May 28 16:51:18 2015 -0700
@@ -103,6 +103,8 @@
             default:
                 throw new RuntimeException("Wrong parameter: " + args[0]);
         }
+
+        System.out.println("Test passed");
     }
 
     /*
@@ -127,7 +129,6 @@
                 }
             }
 
-            server.stop();
             while (server.isRunning()) {
                 sleep();
             }
@@ -223,11 +224,19 @@
                 } catch (SSLHandshakeException e) {
                     System.out.println("Server: run: " + e);
                     sslError = true;
+                    stopped = true;
                 } catch (IOException e) {
                     if (!stopped) {
-                        System.out.println("Server: run: " + e);
+                        System.out.println("Server: run: unexpected exception: "
+                                + e);
                         e.printStackTrace();
                         otherError = true;
+                        stopped = true;
+                    } else {
+                        System.out.println("Server: run: " + e);
+                        System.out.println("The exception above occurred "
+                                    + "because socket was closed, "
+                                    + "please ignore it");
                     }
                 }
             }
@@ -260,6 +269,7 @@
             stopped = true;
             if (!ssocket.isClosed()) {
                 try {
+                    System.out.println("Server: close socket");
                     ssocket.close();
                 } catch (IOException e) {
                     System.out.println("Server: close: " + e);
--- a/test/javax/script/VersionTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/script/VersionTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 6346729 6705893
  * @summary Create JavaScript engine and check language and engine version
+ * @modules java.scripting
+ *          jdk.scripting.nashorn/jdk.nashorn.internal.runtime
  */
 
 import javax.script.*;
--- a/test/javax/security/auth/Subject/SubjectNullTests.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/security/auth/Subject/SubjectNullTests.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,9 @@
 /*
  * @test
  * @bug 8015081
+ * @modules java.base/sun.misc
+ *          java.management
+ *          java.security.jgss
  * @compile Subject.java
  * @compile SubjectNullTests.java
  * @build SubjectNullTests
--- a/test/javax/security/auth/kerberos/StandardNames.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/security/auth/kerberos/StandardNames.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8035986
  * @summary KerberosKey algorithm names are not specified
+ * @modules java.security.jgss/sun.security.krb5
  */
 
 import sun.security.krb5.EncryptedData;
--- a/test/javax/security/auth/login/Configuration/GetInstanceSecurity.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/security/auth/login/Configuration/GetInstanceSecurity.java	Thu May 28 16:51:18 2015 -0700
@@ -34,8 +34,6 @@
 import java.security.*;
 import javax.security.auth.login.*;
 
-import sun.net.www.ParseUtil;
-
 public class GetInstanceSecurity {
 
     private static final String JAVA_CONFIG = "JavaLoginConfig";
--- a/test/javax/security/auth/x500/X500Principal/NameFormat.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/security/auth/x500/X500Principal/NameFormat.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4505980 5109882 7049963 7090565
  * @summary X500Principal input name parsing issues and wrong exception thrown
+ * @modules java.base/sun.security.x509
  * @run main/othervm -Djava.security.debug=x509,ava NameFormat
  *
  * The debug=ava above must be set in order to check for escaped hex chars.
--- a/test/javax/sql/testng/TEST.properties	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/sql/testng/TEST.properties	Thu May 28 16:51:18 2015 -0700
@@ -2,3 +2,6 @@
 TestNG.dirs= .
 othervm.dirs= .
 lib.dirs = /java/sql/testng
+modules = java.sql.rowset/com.sun.rowset \
+          java.sql.rowset/com.sun.rowset.internal \
+          java.sql.rowset/com.sun.rowset.providers
--- a/test/javax/swing/JComboBox/8032878/bug8032878.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/swing/JComboBox/8032878/bug8032878.java	Thu May 28 16:51:18 2015 -0700
@@ -22,7 +22,7 @@
  */
 
 /* @test
- * @bug 8032878
+ * @bug 8032878 8078855
  * @summary Checks that JComboBox as JTable cell editor processes key events
  *          even where setSurrendersFocusOnKeystroke flag in JTable is false and
  *          that it does not lose the first key press where the flag is true.
@@ -36,6 +36,7 @@
 import java.awt.event.KeyEvent;
 import javax.swing.*;
 import javax.swing.text.JTextComponent;
+import javax.swing.plaf.metal.MetalLookAndFeel;
 
 public class bug8032878 implements Runnable {
     private static final String ONE = "one";
@@ -53,6 +54,8 @@
     private volatile String text;
 
     public static void main(String[] args) throws Exception {
+        UIManager.setLookAndFeel(new MetalLookAndFeel());
+
         final bug8032878 test = new bug8032878();
 
         test.test(false);
--- a/test/javax/xml/bind/xjc/8029837/PreParseGrammarTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/xml/bind/xjc/8029837/PreParseGrammarTest.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,10 @@
  * @bug 8029837
  * @summary Test simulates the partial call to xjc ant task that fails with
  *          NullPointer exception
+ * @modules java.xml/com.sun.org.apache.xerces.internal.parsers
+ * @modules java.xml/com.sun.org.apache.xerces.internal.xni
+ * @modules java.xml/com.sun.org.apache.xerces.internal.xni.grammars
+ * @modules java.xml/com.sun.org.apache.xerces.internal.xni.parser
  * @run main/othervm PreParseGrammarTest
  */
 
--- a/test/javax/xml/crypto/dsig/GenerationTests.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/xml/crypto/dsig/GenerationTests.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,9 @@
  * @bug 4635230 6283345 6303830 6824440 6867348 7094155 8038184 8038349 8046949
  *      8046724 8079693
  * @summary Basic unit tests for generating XML Signatures with JSR 105
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
+ *          java.xml.crypto/org.jcp.xml.dsig.internal.dom
  * @compile -XDignore.symbol.file KeySelectors.java SignatureValidator.java
  *     X509KeySelector.java GenerationTests.java
  * @run main/othervm GenerationTests
--- a/test/javax/xml/crypto/dsig/ValidationTests.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/xml/crypto/dsig/ValidationTests.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,9 @@
  * @test
  * @bug 4635230 6365103 6366054 6824440 7131084 8046724 8079693
  * @summary Basic unit tests for validating XML Signatures with JSR 105
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
+ *          java.xml.crypto/org.jcp.xml.dsig.internal.dom
  * @compile -XDignore.symbol.file KeySelectors.java SignatureValidator.java
  *     X509KeySelector.java ValidationTests.java
  * @run main/othervm ValidationTests
--- a/test/javax/xml/crypto/dsig/keyinfo/KeyInfo/Marshal.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/xml/crypto/dsig/keyinfo/KeyInfo/Marshal.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6372500
  * @summary Test that KeyInfo.marshal works correctly
+ * @modules java.xml.crypto/org.jcp.xml.dsig.internal.dom
  * @compile -XDignore.symbol.file Marshal.java
  * @run main Marshal
  * @author Sean Mullan
--- a/test/javax/xml/jaxp/Encodings/CheckEncodingPropertiesFile.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/xml/jaxp/Encodings/CheckEncodingPropertiesFile.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,7 @@
  *      correctly maps them to their preferred mime names.
  *      Also checks that the Encodings.properties resource file
  *      is consistent.
+ * @modules java.xml/com.sun.org.apache.xml.internal.serializer
  * @compile -XDignore.symbol.file CheckEncodingPropertiesFile.java
  * @run main CheckEncodingPropertiesFile
  * @author Daniel Fuchs
--- a/test/javax/xml/jaxp/XPath/8035577/Regex.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/xml/jaxp/XPath/8035577/Regex.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8035577
  * @summary Tests for xpath regular expression methods.
+ * @modules java.xml/com.sun.org.apache.xerces.internal.impl.xpath.regex
  * @run main Regex
  * @author david.x.li@oracle.com
  */
--- a/test/javax/xml/jaxp/parsers/8022548/XOMParserTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/xml/jaxp/parsers/8022548/XOMParserTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,10 @@
  * @test
  * @bug 8022548
  * @summary test that a parser can use DTDConfiguration
+ * @modules java.xml/com.sun.org.apache.xerces.internal.impl
+ *          java.xml/com.sun.org.apache.xerces.internal.parsers
+ *          java.xml/com.sun.org.apache.xerces.internal.util
+ *          java.xml/com.sun.org.apache.xerces.internal.xni.parser
  * @run main XOMParserTest
  */
 import com.sun.org.apache.xerces.internal.impl.Constants;
--- a/test/javax/xml/jaxp/testng/TEST.properties	Thu May 28 16:13:52 2015 -0700
+++ b/test/javax/xml/jaxp/testng/TEST.properties	Thu May 28 16:51:18 2015 -0700
@@ -1,3 +1,11 @@
 # This file identifies root(s) of the test-ng hierarchy.
 
 TestNG.dirs = .
+
+modules = java.xml/com.sun.org.apache.xerces.internal.dom \
+          java.xml/com.sun.org.apache.xerces.internal.impl \
+          java.xml/com.sun.org.apache.xerces.internal.impl.xs \
+          java.xml/com.sun.org.apache.xerces.internal.parsers \
+          java.xml/com.sun.org.apache.xerces.internal.util \
+          java.xml/com.sun.org.apache.xerces.internal.xni.parser \
+          java.xml/com.sun.org.apache.xerces.internal.xs
--- a/test/jdk/internal/jimage/VerifyJimage.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/jdk/internal/jimage/VerifyJimage.java	Thu May 28 16:51:18 2015 -0700
@@ -48,6 +48,7 @@
 /*
  * @test
  * @summary Verify jimage
+ * @modules java.base/jdk.internal.jimage
  * @run main/othervm VerifyJimage
  */
 
--- a/test/jdk/nio/zipfs/ZFSTests.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/jdk/nio/zipfs/ZFSTests.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,7 @@
  */
 
 /* @test
- * @bug 7156873 8040059
+ * @bug 7156873 8040059 8028480 8034773
  * @summary ZipFileSystem regression tests
  *
  * @run main ZFSTests
@@ -30,15 +30,19 @@
  */
 
 
+import java.io.OutputStream;
 import java.net.URI;
+import java.nio.ByteBuffer;
+import java.nio.channels.*;
 import java.nio.file.*;
-import java.util.Map;
-import java.util.HashMap;
+import java.nio.file.spi.*;
+import java.util.*;
 
 public class ZFSTests {
 
     public static void main(String[] args) throws Throwable {
         test7156873();
+        testOpenOptions();
     }
 
     static void test7156873() throws Throwable {
@@ -56,4 +60,44 @@
             Files.deleteIfExists(dir);
         }
     }
+
+    static void testOpenOptions() throws Throwable {
+        Path path = Paths.get("file.zip");
+        try {
+            URI uri = URI.create("jar:" + path.toUri());
+            Map<String, Object> env = new HashMap<String, Object>();
+            env.put("create", "true");
+            try (FileSystem fs = FileSystems.newFileSystem(uri, env)) {
+                FileSystemProvider fsp = fs.provider();
+                Set<? extends OpenOption> options;
+                Path p = fs.getPath("test.txt");
+                // 8028480
+                options = EnumSet.of(StandardOpenOption.CREATE,
+                                     StandardOpenOption.WRITE,
+                                     StandardOpenOption.APPEND);
+                try (FileChannel ch = fsp.newFileChannel(p, options)) {
+                    ch.write(ByteBuffer.wrap("Hello!".getBytes("ASCII")));
+                }
+                // 8034773
+                try (OutputStream os = fsp.newOutputStream(p, new OpenOption[0])) {
+                    os.write("Hello2!".getBytes("ASCII"));
+                }
+                if (!"Hello2!".equals(new String(
+                        Files.readAllBytes(fs.getPath("test.txt"))))) {
+                    throw new RuntimeException("failed to open as truncate_existing");
+                }
+
+                options = EnumSet.of(StandardOpenOption.CREATE,
+                                     StandardOpenOption.APPEND,
+                                     StandardOpenOption.TRUNCATE_EXISTING);
+                try (FileChannel ch = fsp.newFileChannel(p, options)) {
+                    throw new RuntimeException("expected IAE not thrown!");
+                } catch (IllegalArgumentException x) {
+                    // expected x.printStackTrace();
+                }
+            }
+        } finally {
+            Files.deleteIfExists(path);
+        }
+    }
 }
--- a/test/lib/security/CheckBlacklistedCerts.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/lib/security/CheckBlacklistedCerts.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8011402
  * @summary Move blacklisting certificate logic from hard code to data
+ * @modules java.base/sun.security.util
  */
 
 import sun.security.util.UntrustedCertificates;
--- a/test/lib/testlibrary/OutputAnalyzerReportingTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/lib/testlibrary/OutputAnalyzerReportingTest.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
  *     such as printing additional diagnostic info
  *     (exit code, stdout, stderr, command line, etc.)
  * @library /testlibrary
+ * @modules java.management
  * @build jdk.testlibrary.*
  * @run main jdk.testlibrary.OutputAnalyzerReportingTest
  */
--- a/test/lib/testlibrary/OutputAnalyzerTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/lib/testlibrary/OutputAnalyzerTest.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
  * @test
  * @summary Test the OutputAnalyzer utility class
  * @library /testlibrary
+ * @modules java.management
  * @build jdk.testlibrary.*
  * @run main jdk.testlibrary.OutputAnalyzerTest
  */
--- a/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java	Thu May 28 16:51:18 2015 -0700
@@ -44,8 +44,6 @@
 import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
-import sun.management.VMManagement;
-
 public final class ProcessTools {
     private static final class LineForwarder extends StreamPumper.LinePump {
         private final PrintStream ps;
--- a/test/sun/invoke/util/ValueConversionsTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/invoke/util/ValueConversionsTest.java	Thu May 28 16:51:18 2015 -0700
@@ -35,6 +35,7 @@
 
 /* @test
  * @summary unit tests for value-type conversion utilities
+ * @modules java.base/sun.invoke.util
  * @compile -XDignore.symbol.file ValueConversionsTest.java
  * @run junit/othervm test.sun.invoke.util.ValueConversionsTest
  */
--- a/test/sun/management/PlatformMBeanProviderConstructorCheck.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/management/PlatformMBeanProviderConstructorCheck.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,7 @@
  * @test
  * @bug     8042901
  * @summary Check permission for PlatformMBeanProvider Constructor
+ * @modules java.management/sun.management.spi
  * @author  Shanliang Jiang
  */
 public class PlatformMBeanProviderConstructorCheck {
--- a/test/sun/management/jmxremote/bootstrap/JvmstatCountersTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/management/jmxremote/bootstrap/JvmstatCountersTest.java	Thu May 28 16:51:18 2015 -0700
@@ -116,10 +116,10 @@
                     throw new IllegalArgumentException("Test case 3 failed");
                 }
                 for (String key : remoteData.keySet()) {
-                    if (!key.startsWith("sun.management.JMXConnectorServer.0.")) {
+                    if (!isKeyAcceptable(key)) {
                         System.out.println("Test FAILED! The OOTB management " +
                                 "agent shouldn't publish anything which isn't " +
-                                "related to the remote connector.");
+                                "related to the remote connector (" + key + ").");
                         throw new IllegalArgumentException("Test case 3 failed");
                     }
                 }
@@ -165,10 +165,10 @@
                     throw new IllegalArgumentException("Test case 4 failed");
                 }
                 for (String key : remoteData2.keySet()) {
-                    if (!key.startsWith("sun.management.JMXConnectorServer.0.")) {
+                    if (!isKeyAcceptable(key)) {
                         System.out.println("Test FAILED! The OOTB management " +
                                 "agent shouldn't publish anything which isn't " +
-                                "related to the remote connector.");
+                                "related to the remote connector (" + key + ").");
                         throw new IllegalArgumentException("Test case 4 failed");
                     }
                 }
@@ -184,4 +184,9 @@
         }
         System.out.println("Bye! Bye!");
     }
+
+    private static boolean isKeyAcceptable(String key) {
+        return key.startsWith("sun.management.JMXConnectorServer.0.") ||
+               key.startsWith("sun.management.JMXConnectorServer.remote.enabled");
+    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/sun/management/jmxremote/startstop/JMXStatusPerfCountersTest.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,188 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.io.IOException;
+import java.net.BindException;
+import java.util.Properties;
+import java.util.function.Predicate;
+import static org.testng.Assert.*;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import jdk.testlibrary.ProcessTools;
+
+
+/**
+ * @test
+ * @bug 8075926
+ * @summary Makes sure that the current management agent status is reflected
+ *          in the related performance counters.
+ * @library /lib/testlibrary
+ * @build jdk.testlibrary.* PortAllocator TestApp ManagementAgentJcmd
+ * @run testng/othervm -XX:+UsePerfData JMXStatusPerfCountersTest
+ */
+public class JMXStatusPerfCountersTest {
+    private final static String TEST_APP_NAME = "TestApp";
+
+    private final static String REMOTE_STATUS_KEY = "sun.management.JMXConnectorServer.remote.enabled";
+
+    private static ProcessBuilder testAppPb;
+    private Process testApp;
+
+    private ManagementAgentJcmd jcmd;
+
+    @BeforeClass
+    public static void setupClass() throws Exception {
+        testAppPb = ProcessTools.createJavaProcessBuilder(
+            "-XX:+UsePerfData",
+            "-cp", System.getProperty("test.class.path"),
+            TEST_APP_NAME
+        );
+    }
+
+    @BeforeTest
+    public void setup() {
+        jcmd = new ManagementAgentJcmd(TEST_APP_NAME, false);
+    }
+
+    @BeforeMethod
+    public void startTestApp() throws Exception {
+        testApp = ProcessTools.startProcess(
+            TEST_APP_NAME, testAppPb,
+            (Predicate<String>)l->l.trim().equals("main enter")
+        );
+    }
+
+    @AfterMethod
+    public void stopTestApp() throws Exception {
+        testApp.getOutputStream().write(1);
+        testApp.getOutputStream().flush();
+        testApp.waitFor();
+        testApp = null;
+    }
+
+    /**
+     * The 'sun.management.JMXConnectorServer.remote.enabled' counter must not be
+     * exported if the remote agent is not enabled.
+     * @throws Exception
+     */
+    @Test
+    public void testNotInitializedRemote() throws Exception {
+        assertFalse(
+            getCounters().containsKey(REMOTE_STATUS_KEY),
+            "Unexpected occurrence of " + REMOTE_STATUS_KEY + " in perf counters"
+        );
+    }
+
+    /**
+     * After enabling the remote agent the 'sun.management.JMXConnectorServer.remote.enabled'
+     * counter will be exported with value of '0' - corresponding to the actual
+     * version of the associated remote connector perf counters.
+     * @throws Exception
+     */
+    @Test
+    public void testRemoteEnabled() throws Exception {
+        while (true) {
+            try {
+                int[] ports = PortAllocator.allocatePorts(1);
+                jcmd.start(
+                    "jmxremote.port=" + ports[0],
+                    "jmxremote.authenticate=false",
+                    "jmxremote.ssl=false"
+                );
+                String v = getCounters().getProperty(REMOTE_STATUS_KEY);
+                assertNotNull(v);
+                assertEquals("0", v);
+                return;
+            } catch (BindException e) {
+                System.out.println("Failed to allocate ports. Retrying ...");
+            }
+        }
+    }
+
+    /**
+     * After disabling the remote agent the value of 'sun.management.JMXConnectorServer.remote.enabled'
+     * counter will become '-1'.
+     * @throws Exception
+     */
+    @Test
+    public void testRemoteDisabled() throws Exception {
+        while (true) {
+            try {
+                int[] ports = PortAllocator.allocatePorts(1);
+                jcmd.start(
+                    "jmxremote.port=" + ports[0],
+                    "jmxremote.authenticate=false",
+                    "jmxremote.ssl=false"
+                );
+                jcmd.stop();
+                String v = getCounters().getProperty(REMOTE_STATUS_KEY);
+                assertNotNull(v);
+                assertEquals("-1", v);
+                return;
+            } catch (BindException e) {
+                System.out.println("Failed to allocate ports. Retrying ...");
+            }
+        }
+    }
+
+    /**
+     * Each subsequent re-enablement of the remote agent must keep the value of
+     * 'sun.management.JMXConnectorServer.remote.enabled' counter in sync with
+     * the actual version of the associated remote connector perf counters.
+     * @throws Exception
+     */
+    @Test
+    public void testRemoteReEnabled() throws Exception {
+        while (true) {
+            try {
+                int[] ports = PortAllocator.allocatePorts(1);
+                jcmd.start(
+                    "jmxremote.port=" + ports[0],
+                    "jmxremote.authenticate=false",
+                    "jmxremote.ssl=false"
+                );
+                jcmd.stop();
+                jcmd.start(
+                    "jmxremote.port=" + ports[0],
+                    "jmxremote.authenticate=false",
+                    "jmxremote.ssl=false"
+                );
+
+                String v = getCounters().getProperty(REMOTE_STATUS_KEY);
+                assertNotNull(v);
+                assertEquals("1", v);
+                return;
+            } catch (BindException e) {
+                System.out.println("Failed to allocate ports. Retrying ...");
+            }
+        }
+    }
+
+    private Properties getCounters() throws IOException, InterruptedException {
+        return jcmd.perfCounters("sun\\.management\\.JMXConnectorServer\\..*");
+    }
+}
\ No newline at end of file
--- a/test/sun/management/jmxremote/startstop/JMXStatusTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/management/jmxremote/startstop/JMXStatusTest.java	Thu May 28 16:51:18 2015 -0700
@@ -36,6 +36,7 @@
  *          Management agent may be disable, started (only local connections) and started.
  *          The test asserts that the expected text is being printed.
  * @library /lib/testlibrary
+ * @modules java.management/sun.management
  * @build jdk.testlibrary.* PortAllocator TestApp ManagementAgentJcmd
  * @run testng/othervm -XX:+UsePerfData JMXStatusTest
  */
--- a/test/sun/management/jmxremote/startstop/ManagementAgentJcmd.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/management/jmxremote/startstop/ManagementAgentJcmd.java	Thu May 28 16:51:18 2015 -0700
@@ -25,8 +25,10 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Properties;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Consumer;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import sun.management.Agent;
 import sun.management.AgentConfigurationError;
@@ -43,6 +45,7 @@
     private static final String CMD_START = "ManagementAgent.start";
     private static final String CMD_START_LOCAL = "ManagementAgent.start_local";
     private static final String CMD_STATUS = "ManagementAgent.status";
+    private static final String CMD_PRINTPERF = "PerfCounter.print";
 
     private final String id;
     private final boolean verbose;
@@ -63,6 +66,39 @@
     }
 
     /**
+     * `jcmd PerfCounter.print`
+     * @return Returns the available performance counters with their values as
+     *         {@linkplain Properties} instance
+     * @throws IOException
+     * @throws InterruptedException
+     */
+    public Properties perfCounters() throws IOException, InterruptedException {
+        return perfCounters(".*");
+    }
+
+    /**
+     * `jcmd PerfCounter.print | grep {exp}>`
+     * @param regex Regular expression for including perf counters in the result
+     * @return Returns the matching performance counters with their values
+     *         as {@linkplain Properties} instance
+     * @throws IOException
+     * @throws InterruptedException
+     */
+    public Properties perfCounters(String regex) throws IOException, InterruptedException {
+        Pattern pat = Pattern.compile(regex);
+        Properties p = new Properties();
+        for(String l : jcmd(CMD_PRINTPERF).split("\\n")) {
+            String[] kv = l.split("=");
+            if (kv.length > 1) {
+                if (pat.matcher(kv[0]).matches()) {
+                    p.setProperty(kv[0], kv[1].replace("\"", ""));
+                }
+            }
+        }
+        return p;
+    }
+
+    /**
      * `jcmd <app> ManagementAgent.stop`
      * @return The JCMD output
      * @throws IOException
--- a/test/sun/misc/CopyMemory.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/CopyMemory.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 6565543
  * @summary Minimal test for unsafe.copyMemory() and unsafe.setMemory()
+ * @modules java.base/sun.nio.ch java.base/sun.misc
  * @key randomness
  */
 
--- a/test/sun/misc/Encode/DecodeBuffer.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/Encode/DecodeBuffer.java	Thu May 28 16:51:18 2015 -0700
@@ -25,7 +25,7 @@
  * @test
  * @bug 4159554
  * @summary Problem with UUDecoder
- *
+ * @modules java.base/sun.misc
  */
 
 import sun.misc.*;
--- a/test/sun/misc/Encode/Encode.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/Encode/Encode.java	Thu May 28 16:51:18 2015 -0700
@@ -25,7 +25,7 @@
  * @test
  * @bug 4041231
  * @summary Test UUEncoder.java for proper masking in encodeAtom
- *
+ * @modules java.base/sun.misc
  */
 
 import sun.misc.*;
--- a/test/sun/misc/Encode/GetBytes.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/Encode/GetBytes.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 5031097
  * @summary sun.misc.CharacterEncoder(ByteBuffer) is dumping too
  *      much information
+ * @modules java.base/sun.misc
  * @author Brad Wetmore
  */
 
--- a/test/sun/misc/FloatingDecimal/TestFDBigInteger.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/FloatingDecimal/TestFDBigInteger.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,7 @@
  * @test
  * @bug 7032154
  * @summary unit testys of sun.misc.FDBigInteger
+ * @modules java.base/sun.misc
  * @author Dmitry Nadezhin
  */
 public class TestFDBigInteger {
--- a/test/sun/misc/FloatingDecimal/TestFloatingDecimal.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/FloatingDecimal/TestFloatingDecimal.java	Thu May 28 16:51:18 2015 -0700
@@ -58,6 +58,7 @@
  * @test
  * @bug 7032154
  * @summary unit tests of sun.misc.FloatingDecimal
+ * @modules java.base/sun.misc
  * @library ../../../java/lang/Math
  * @build DoubleConsts FloatConsts
  * @run main TestFloatingDecimal
--- a/test/sun/misc/JarIndex/JarIndexMergeTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/JarIndex/JarIndexMergeTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,9 +24,10 @@
 /*
  * @test
  * @bug 6901992
+ * @summary InvalidJarIndexException due to bug in sun.misc.JarIndex.merge()
+ * @modules java.base/sun.misc
  * @compile -XDignore.symbol.file JarIndexMergeTest.java
  * @run main JarIndexMergeTest
- * @summary InvalidJarIndexException due to bug in sun.misc.JarIndex.merge()
  * @author  Diego Belfer
  */
 
--- a/test/sun/misc/JarIndex/metaInfFilenames/Basic.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/JarIndex/metaInfFilenames/Basic.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6887710
  * @summary Verify the impact of sun.misc.JarIndex.metaInfFilenames on ServiceLoader
+ * @modules jdk.jartool/sun.tools.jar
  * @run main/othervm Basic
  */
 
--- a/test/sun/misc/JavaLangAccess/FormatUnsigned.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/JavaLangAccess/FormatUnsigned.java	Thu May 28 16:51:18 2015 -0700
@@ -26,8 +26,9 @@
 
 /*
  * @test
+ * @bug 8050114
  * @summary Test JavaLangAccess.formatUnsignedInt/-Long
- * @bug 8050114
+ * @modules java.base/sun.misc
  */
 public class FormatUnsigned {
 
--- a/test/sun/misc/JavaLangAccess/NewUnsafeString.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/JavaLangAccess/NewUnsafeString.java	Thu May 28 16:51:18 2015 -0700
@@ -28,8 +28,9 @@
 
 /*
  * @test
+ * @bug 8013528
  * @summary Test JavaLangAccess.newUnsafeString
- * @bug 8013528
+ * @modules java.base/sun.misc
  * @compile -XDignore.symbol.file NewUnsafeString.java
  */
 public class NewUnsafeString {
--- a/test/sun/misc/Safe.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/Safe.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @bug 4495577
  * @summary Ensure that sun.misc.Unsafe cannot (easily)
  *          be accessed from user code
+ * @modules java.base/sun.misc
  */
 
 
--- a/test/sun/misc/URLClassPath/ClassnameCharTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/URLClassPath/ClassnameCharTest.java	Thu May 28 16:51:18 2015 -0700
@@ -23,10 +23,11 @@
 
 /* @test
  * @bug 4957669 5017871
+ * @summary cannot load class names containing some JSR 202 characters;
+ *          plugin does not escape unicode character in http request
+ * @modules java.desktop/sun.applet
  * @compile -XDignore.symbol.file=true ClassnameCharTest.java
  * @run main ClassnameCharTest
- * @summary cannot load class names containing some JSR 202 characters;
- *          plugin does not escape unicode character in http request
  */
 
 import java.io.*;
--- a/test/sun/misc/VM/GetNanoTimeAdjustment.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/VM/GetNanoTimeAdjustment.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @test
  * @bug 8068730
  * @summary tests that VM.getgetNanoTimeAdjustment() works as expected.
+ * @modules java.base/sun.misc
  * @run main GetNanoTimeAdjustment
  * @author danielfuchs
  */
--- a/test/sun/misc/Version/Version.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/misc/Version/Version.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @bug 6994413
  * @summary Check the JDK and JVM version returned by sun.misc.Version
  *          matches the versions defined in the system properties
+ * @modules java.base/sun.misc
  * @compile -XDignore.symbol.file Version.java
  * @run main Version
  */
--- a/test/sun/net/InetAddress/nameservice/chaining/Providers.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/InetAddress/nameservice/chaining/Providers.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4762344
  * @summary 2nd nameservice provider is non functional
+ * @modules java.base/sun.net.spi.nameservice
  * @compile -XDignore.symbol.file=true SimpleNameService.java
  *                                     Simple1NameServiceDescriptor.java
  *                                     Simple2NameServiceDescriptor.java
--- a/test/sun/net/InetAddress/nameservice/deadlock/Hang.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/InetAddress/nameservice/deadlock/Hang.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 7012768
+ * @modules java.base/sun.net.spi.nameservice
  * @compile -XDignore.symbol.file=true ThrowingNameService.java
  *          ThrowingNameServiceDescriptor.java
  * @run main/othervm/timeout=30 -Dsun.net.spi.nameservice.provider.1=throwing,sun Hang
--- a/test/sun/net/InetAddress/nameservice/simple/CacheTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/InetAddress/nameservice/simple/CacheTest.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @summary Check that InetAddress doesn't continue to throw UHE
  *          after the name service has recovered and the negative ttl
  *          on the initial lookup has expired.
+ * @modules java.base/sun.net.spi.nameservice
  * @compile -XDignore.symbol.file=true SimpleNameService.java
  *                                     SimpleNameServiceDescriptor.java
  * @run main/othervm/timeout=200 -Dsun.net.spi.nameservice.provider.1=simple,sun CacheTest
--- a/test/sun/net/InetAddress/nameservice/simple/DefaultCaching.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/InetAddress/nameservice/simple/DefaultCaching.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @bug 6442088
  * @summary Change default DNS caching behavior for code not running under
  *          security manager.
+ * @modules java.base/sun.net.spi.nameservice
  * @compile -XDignore.symbol.file=true SimpleNameService.java
  *                                     SimpleNameServiceDescriptor.java
  * @run main/othervm/timeout=200 -Dsun.net.inetaddr.ttl=20 -Dsun.net.spi.nameservice.provider.1=simple,sun DefaultCaching
--- a/test/sun/net/TelnetTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/TelnetTest.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,7 @@
  * @test
  * @bug 4145748
  * @summary test stickyCRLF in TelnetOutputStream
+ * @modules java.base/sun.net
  */
 public class TelnetTest {
 
--- a/test/sun/net/ftp/B6427768.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/ftp/B6427768.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6427768
  * @summary FtpURLConnection doesn't close FTP connection when login fails
+ * @modules java.base/sun.net.ftp
  * @library ../www/ftptest/
  * @build FtpServer FtpCommandHandler FtpAuthHandler FtpFileSystemHandler
  * @run main/othervm/timeout=500 B6427768
--- a/test/sun/net/idn/PunycodeTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/idn/PunycodeTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @summary Unit test for sun.net.idn.Punycode
  * @bug 4737170
+ * @modules java.base/sun.net.idn
  * @compile -XDignore.symbol.file PunycodeTest.java
  * @run main/othervm -ea PunycodeTest
  * @author Edward Wang
--- a/test/sun/net/idn/TestStringPrep.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/idn/TestStringPrep.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @summary Unit test for sun.net.idn.Punycode
  * @bug 4737170
+ * @modules java.base/sun.net.idn java.base/sun.text.normalizer
  * @library .
  * @compile -XDignore.symbol.file TestStringPrep.java NFS4StringPrep.java
  *     TestData.java
--- a/test/sun/net/www/AuthHeaderTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/AuthHeaderTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4804309
+ * @modules java.base/sun.net.www
  * @library ../../../sun/net/www/httptest/
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main AuthHeaderTest
--- a/test/sun/net/www/EmbeddedEquals.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/EmbeddedEquals.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4456995
+ * @modules java.base/sun.net.www
  * @summary  HeaderParser misinterprets a '=' character embedded in value
  */
 
--- a/test/sun/net/www/HeaderTests.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/HeaderTests.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,7 @@
 
 /**
  * @test
+ * @modules java.base/sun.net.www
  * @summary Tests for HeaderParser and MessageHeader
  *
  * Test of HeaderParser, MessageHeader changes
@@ -31,7 +32,6 @@
 
 import sun.net.www.HeaderParser;
 import sun.net.www.MessageHeader;
-import sun.net.www.protocol.http.AuthenticationHeader;
 import java.io.*;
 import java.util.Iterator;
 
--- a/test/sun/net/www/MessageHeaderTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/MessageHeaderTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 8003948
+ * @modules java.base/sun.net.www
  * @run main MessageHeaderTest
  */
 import java.io.*;
--- a/test/sun/net/www/ParseUtil_4922813.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/ParseUtil_4922813.java	Thu May 28 16:51:18 2015 -0700
@@ -22,8 +22,9 @@
  */
 
 /* @test
-   @bug 4922813
-   @summary Check the new impl of encodePath will not cause regression
+ * @bug 4922813
+ * @summary Check the new impl of encodePath will not cause regression
+ * @modules java.base/sun.net.www
    @key randomness
  */
 
--- a/test/sun/net/www/ParseUtil_6274990.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/ParseUtil_6274990.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @summary REGRESSION: URLConnection.connect() throws Exception with non UTF-8 char
  * @bug 6274990
+ * @modules java.base/sun.net.www
  */
 
 import sun.net.www.*;
--- a/test/sun/net/www/ParseUtil_6306697.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/ParseUtil_6306697.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @summary PIT: CookieManager/TestCookieManager/TestCookieManager3 failed in Mustang PIT b47
  * @bug 6306697
+ * @modules java.base/sun.net.www
  */
 
 import sun.net.www.ParseUtil;
--- a/test/sun/net/www/ParseUtil_6380332.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/ParseUtil_6380332.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @summary SunTea applet fails to load under Mustang
  * @bug 6380332
+ * @modules java.base/sun.net.www
  */
 
 import sun.net.www.ParseUtil;
--- a/test/sun/net/www/ParseUtil_6478588.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/ParseUtil_6478588.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @summary StringIndexOutOfBoundsException in HttpURLConnection.getResponseCode
  * @bug 6478588
+ * @modules java.base/sun.net.www
  */
 
 import sun.net.www.ParseUtil;
--- a/test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingWithProgressMonitorTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingWithProgressMonitorTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,8 +24,9 @@
 /**
  * @test
  * @bug 4333920 4994372
+ * @summary ChunkedEncoding unit test; MeteredStream/ProgressData problem
+ * @modules java.base/sun.net
  * @run main ChunkedEncodingWithProgressMonitorTest
- * @summary ChunkedEncoding unit test; MeteredStream/ProgressData problem
  */
 
 import java.net.*;
--- a/test/sun/net/www/http/HttpClient/GetProxyPort.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/http/HttpClient/GetProxyPort.java	Thu May 28 16:51:18 2015 -0700
@@ -25,7 +25,8 @@
  * @test
  * @bug 5025019
  * @summary REGRESSION: Sun implementation for HttpURLConnection could throw NPE
- *
+ * @modules java.base/sun.net
+ *          java.base/sun.net.www.http
  */
 import java.net.ServerSocket;
 import java.net.URL;
--- a/test/sun/net/www/http/HttpClient/ImplicitFileName.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/http/HttpClient/ImplicitFileName.java	Thu May 28 16:51:18 2015 -0700
@@ -24,9 +24,10 @@
 /*
  * @test
  * @bug 4251209
- * @summary Make sure that implicit filenames will be returned as
- * "/"
-*/
+ * @summary Make sure that implicit filenames will be returned as "/"
+ * @modules java.base/sun.net
+ *          java.base/sun.net.www.http
+ */
 
 import java.net.URL;
 import java.net.ServerSocket;
--- a/test/sun/net/www/http/HttpClient/IsAvailable.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/http/HttpClient/IsAvailable.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @bug 8009650
  * @summary HttpClient available() check throws SocketException when connection
  * has been closed
+ * @modules java.base/sun.net
+ *          java.base/sun.net.www.http
  */
 
 import java.net.URL;
--- a/test/sun/net/www/http/HttpClient/IsKeepingAlive.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/http/HttpClient/IsKeepingAlive.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @bug 4277155
  * @summary Make sure HttpClient.getHttpKeepAliveSet() has
  *    doPrivileged() call at appropriate places.
+ * @modules java.base/sun.net
+ *          java.base/sun.net.www.http
  * @run main/othervm/policy=IsKeepingAlive.policy IsKeepingAlive
  */
 
--- a/test/sun/net/www/http/HttpClient/OpenServer.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/http/HttpClient/OpenServer.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4154481
  * @summary Make sure HttpClient has
  *    doPrivileged() calls at appropriate places.
+ * @modules java.base/sun.net.www.http
  * @run main/othervm/policy=OpenServer.policy OpenServer
  */
 
--- a/test/sun/net/www/http/HttpClient/ProxyFromCache.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/http/HttpClient/ProxyFromCache.java	Thu May 28 16:51:18 2015 -0700
@@ -24,8 +24,9 @@
 /*
  * @test
  * @bug 6498566
+ * @summary URL.openConnection(Proxy.NO_PROXY) may connect through a proxy.
+ * @modules java.base/sun.net.www
  * @run main/othervm ProxyFromCache
- * @summary URL.openConnection(Proxy.NO_PROXY) may connect through a proxy.
  */
 
 import java.net.*;
--- a/test/sun/net/www/http/HttpClient/RequestURI.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/http/HttpClient/RequestURI.java	Thu May 28 16:51:18 2015 -0700
@@ -24,8 +24,9 @@
 /*
  * @test
  * @bug 6469663
+ * @summary HTTP Request-URI contains fragment when connecting through proxy
+ * @modules java.base/sun.net.www
  * @run main/othervm RequestURI
- * @summary HTTP Request-URI contains fragment when connecting through proxy
  */
 
 import java.net.*;
--- a/test/sun/net/www/http/KeepAliveCache/B5045306.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/http/KeepAliveCache/B5045306.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 5045306 6356004 6993490
+ * @modules java.base/sun.net.www
  * @library ../../httptest/
  * @build HttpCallback TestHttpServer HttpTransaction
  * @run main/othervm B5045306
--- a/test/sun/net/www/protocol/ftp/UserAndPasswordTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/ftp/UserAndPasswordTest.java	Thu May 28 16:51:18 2015 -0700
@@ -39,7 +39,6 @@
 import java.util.*;
 import java.util.jar.*;
 import java.util.zip.*;
-import sun.net.ftp.FtpLoginException;
 
 public class UserAndPasswordTest {
 
--- a/test/sun/net/www/protocol/http/B6296310.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/B6296310.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 6296310
+ * @modules java.base/sun.net.www
  * @library ../../httptest/
  * @build HttpCallback TestHttpServer HttpTransaction
  * @run main/othervm B6296310
--- a/test/sun/net/www/protocol/http/CloseOptionHeader.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/CloseOptionHeader.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6189206
+ * @modules java.base/sun.net.www
  * @run main/othervm -Dhttp.keepAlive=false CloseOptionHeader
  * @summary  HTTP client should set "Connection: close" header in request when keepalive is disabled
  */
--- a/test/sun/net/www/protocol/http/DigestTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/DigestTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4432213
+ * @modules java.base/sun.net.www
  * @run main/othervm -Dhttp.auth.digest.validateServer=true DigestTest
  * @summary  Need to support Digest Authentication for Proxies
  */
--- a/test/sun/net/www/protocol/http/NTLMTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/NTLMTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 6520665 6357133
+ * @modules java.base/sun.net.www
  * @run main/othervm NTLMTest
  * @summary 6520665 & 6357133: NTLM authentication issues.
  */
--- a/test/sun/net/www/protocol/http/NoNTLM.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/NoNTLM.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @bug 8004502
  * @summary Sanity check that NTLM will not be selected by the http protocol
  *    handler when running on a profile that does not support NTLM
+ * @modules java.base/sun.net.www
  * @run main/othervm NoNTLM
  */
 
--- a/test/sun/net/www/protocol/http/RelativeRedirect.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/RelativeRedirect.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4726087
+ * @modules java.base/sun.net.www
  * @library ../../httptest/
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main RelativeRedirect
--- a/test/sun/net/www/protocol/http/ResponseCacheStream.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/ResponseCacheStream.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 6262486
+ * @modules java.base/sun.net.www
  * @library ../../httptest/
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main/othervm -Dhttp.keepAlive=false ResponseCacheStream
--- a/test/sun/net/www/protocol/http/RetryUponTimeout.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/RetryUponTimeout.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4772077
  * @summary  using defaultReadTimeout appear to retry request upon timeout
+ * @modules java.base/sun.net.www
  */
 
 import java.net.*;
--- a/test/sun/net/www/protocol/http/SetChunkedStreamingMode.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/SetChunkedStreamingMode.java	Thu May 28 16:51:18 2015 -0700
@@ -24,8 +24,9 @@
 /**
  * @test
  * @bug 5049976
+ * @modules java.base/sun.net.www
  * @library ../../httptest/
-  @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
+ * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main SetChunkedStreamingMode
  * @summary Unspecified NPE is thrown when streaming output mode is enabled
  */
--- a/test/sun/net/www/protocol/http/TunnelThroughProxy.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/TunnelThroughProxy.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4620362
+ * @modules java.base/sun.net.www
  * @run main/othervm TunnelThroughProxy
  * @summary JSSE not returning proper exception on unknown host
  */
--- a/test/sun/net/www/protocol/http/UserAgent.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/UserAgent.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4512200
+ * @modules java.base/sun.net.www
  * @run main/othervm -Dhttp.agent=foo UserAgent
  * @summary  HTTP header "User-Agent" format incorrect
  */
--- a/test/sun/net/www/protocol/http/ZoneId.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/http/ZoneId.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 8027308
+ * @modules java.base/sun.net.www.protocol.http
  * @summary  verifies that HttpURLConnection does not send the zone id in the
  *           'Host' field of the header:
  *              Host: [fe80::a00:27ff:aaaa:aaaa] instead of
--- a/test/sun/net/www/protocol/https/ChunkedOutputStream.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/ChunkedOutputStream.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 5026745
+ * @modules java.base/sun.net.www
  * @library ../../httpstest/
  * @build TestHttpsServer HttpCallback
  * @run main/othervm ChunkedOutputStream
--- a/test/sun/net/www/protocol/https/HttpsClient/ProxyAuthTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/HttpsClient/ProxyAuthTest.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4323990 4413069
  * @summary HttpsURLConnection doesn't send Proxy-Authorization on CONNECT
  *     Incorrect checking of proxy server response
+ * @modules java.base/sun.net.www
  * @run main/othervm ProxyAuthTest
  *
  *     No way to reserve and restore java.lang.Authenticator, need to run this
--- a/test/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java	Thu May 28 16:51:18 2015 -0700
@@ -24,11 +24,12 @@
 /*
  * @test
  * @bug 6216082
- * @library ..
- * @build HttpCallback TestHttpsServer ClosedChannelList HttpTransaction TunnelProxy
  * @summary  Redirect problem with HttpsURLConnection using a proxy
  *     SunJSSE does not support dynamic system properties, no way to re-use
  *     system properties in samevm/agentvm mode.
+ * @modules java.base/sun.net.www
+ * @library ..
+ * @build HttpCallback TestHttpsServer ClosedChannelList HttpTransaction TunnelProxy
  * @run main/othervm B6216082
  */
 
--- a/test/sun/net/www/protocol/https/HttpsURLConnection/B6226610.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/HttpsURLConnection/B6226610.java	Thu May 28 16:51:18 2015 -0700
@@ -24,8 +24,9 @@
 /*
  * @test
  * @bug 6226610 6973030
+ * @summary HTTP tunnel connections send user headers to proxy
+ * @modules java.base/sun.net.www
  * @run main/othervm B6226610
- * @summary HTTP tunnel connections send user headers to proxy
  */
 
 /* This class includes a proxy server that processes the HTTP CONNECT request,
--- a/test/sun/net/www/protocol/https/HttpsURLConnection/CheckMethods.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/HttpsURLConnection/CheckMethods.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4423074
  * @summary Need to rebase all the duplicated classes from Merlin.
  *          This test will check out http POST
+ * @modules java.base/sun.net.www.protocol.https java.base/com.sun.net.ssl.internal.www.protocol.https
  */
 import java.net.*;
 import java.util.*;
--- a/test/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java	Thu May 28 16:51:18 2015 -0700
@@ -46,8 +46,6 @@
 import java.security.interfaces.*;
 import java.math.BigInteger;
 
-import sun.security.ssl.SSLSocketImpl;
-
 /*
  * Certificates and key used in the test.
  *
--- a/test/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java	Thu May 28 16:51:18 2015 -0700
@@ -43,8 +43,6 @@
 import java.security.interfaces.*;
 import java.math.BigInteger;
 
-import sun.security.ssl.SSLSocketImpl;
-
 /*
  * Certificates and key used in the test.
  *
--- a/test/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java	Thu May 28 16:51:18 2015 -0700
@@ -46,8 +46,6 @@
 import java.security.interfaces.*;
 import java.math.BigInteger;
 
-import sun.security.ssl.SSLSocketImpl;
-
 /*
  * Certificates and key used in the test.
  *
--- a/test/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java	Thu May 28 16:51:18 2015 -0700
@@ -46,8 +46,6 @@
 import java.security.interfaces.*;
 import java.math.BigInteger;
 
-import sun.security.ssl.SSLSocketImpl;
-
 /*
  * Certificates and key used in the test.
  *
--- a/test/sun/net/www/protocol/https/HttpsURLConnection/Identities.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/HttpsURLConnection/Identities.java	Thu May 28 16:51:18 2015 -0700
@@ -46,8 +46,6 @@
 import java.security.interfaces.*;
 import java.math.BigInteger;
 
-import sun.security.ssl.SSLSocketImpl;
-
 /*
  * Certificates and key used in the test.
  *
--- a/test/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 4474255
  * @summary Can no longer obtain a com.sun.net.ssl.HttpsURLConnection
+ * @modules java.base/com.sun.net.ssl
+ *          java.base/com.sun.net.ssl.internal.www.protocol.https
  * @run main/othervm ComHTTPSConnection
  *
  *     SunJSSE does not support dynamic system properties, no way to re-use
--- a/test/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,8 @@
  * @bug 4484246
  * @summary When an application enables anonymous SSL cipher suite,
  *        Hostname verification is not required
+ * @modules java.base/com.sun.net.ssl
+ *          java.base/com.sun.net.ssl.internal.www.protocol.https
  * @run main/othervm ComHostnameVerifier
  *
  *     SunJSSE does not support dynamic system properties, no way to re-use
--- a/test/sun/nio/cs/OLD/TestIBMDB.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/nio/cs/OLD/TestIBMDB.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6843578
  * @summary Test old and new implementation of db charsets
  * @build IBM930_OLD IBM933_OLD IBM935_OLD IBM937_OLD IBM939_OLD IBM942_OLD IBM943_OLD IBM948_OLD IBM949_OLD IBM950_OLD IBM970_OLD IBM942C_OLD IBM943C_OLD IBM949C_OLD IBM1381_OLD IBM1383_OLD EUC_CN_OLD EUC_KR_OLD GBK_OLD Johab_OLD MS932_OLD MS936_OLD MS949_OLD MS950_OLD SJIS_OLD PCK_OLD EUC_JP_OLD EUC_JP_LINUX_OLD EUC_JP_Open_OLD
+ * @modules java.base/sun.nio.cs jdk.charsets/sun.nio.cs.ext
  * @run main TestIBMDB
  */
 
--- a/test/sun/nio/cs/Test4200310.sh	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-#
-# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-# 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 4200310
-# @summary make sure class files are not duplicated between rt.jar,
-# charsets.jar, and localedata.jar
-# @author Norbert Lindenberg
-# @run shell Test4200310.sh
-
-2>&1 $TESTJAVA/bin/jar -tf "$TESTJAVA/jre/lib/rt.jar" > class-list
-2>&1 $TESTJAVA/bin/jar -tf "$TESTJAVA/jre/lib/charsets.jar" >> class-list
-2>&1 $TESTJAVA/bin/jar -tf "$TESTJAVA/jre/lib/ext/localedata.jar" >> class-list
-duplicates=`grep '\.class$' class-list | sort | uniq -d`
-
-rm -f class-list
-if [ "$duplicates" != "" ]; then
-   echo FAILED: $duplicates are duplicated between rt.jar, charsets.jar, and localedata.jar
-   exit 1
-fi
-
-exit 0
--- a/test/sun/nio/cs/TestEUC_TW.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/nio/cs/TestEUC_TW.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6831794 6229811
  * @summary Test EUC_TW charset
+ * @modules java.base/sun.nio.cs
  */
 
 import java.nio.charset.*;
--- a/test/sun/nio/cs/TestISO2022JP.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/nio/cs/TestISO2022JP.java	Thu May 28 16:51:18 2015 -0700
@@ -22,7 +22,7 @@
  */
 
 /* @test
-   @bug 4626545 4879522 4913711 4119445
+   @bug 4626545 4879522 4913711 4119445 8042125
    @summary Check full coverage encode/decode for ISO-2022-JP
  */
 
@@ -33,6 +33,8 @@
  */
 
 import java.io.*;
+import java.util.Arrays;
+
 public class TestISO2022JP {
 
     private final static String US_ASCII =
@@ -608,5 +610,41 @@
             if (encoded[i] != expected[i])
                throw new Exception("ISO-2022-JP Decoder error");
         }
+
+        // Test for 7 c2b codepoints in ms932 iso2022jp
+        String testStr4 = "\u00b8\u00b7\u00af\u00ab\u00bb\u3094\u00b5";
+        expected = new byte[] {
+                     (byte)0x1b, (byte)0x24, (byte)0x42,
+                     (byte)0x21, (byte)0x24,
+                     (byte)0x21, (byte)0x26,
+                     (byte)0x21, (byte)0x31,
+                     (byte)0x22, (byte)0x63,
+                     (byte)0x22, (byte)0x64,
+                     (byte)0x25, (byte)0x74,
+                     (byte)0x26, (byte)0x4c,
+                     (byte)0x1b, (byte)0x28, (byte)0x42 };
+        encoded = testStr4.getBytes("x-windows-iso2022jp");
+        if (!Arrays.equals(encoded, expected)) {
+               throw new Exception("MSISO2022JP Encoder error");
+        }
+        // Test for 10 non-roundtrip characters in ms932 iso2022jp
+        encoded = new byte[] {
+            (byte)0x1B, (byte)0x24, (byte)0x42,
+            (byte)0x22, (byte)0x4C,
+            (byte)0x22, (byte)0x5D,
+            (byte)0x22, (byte)0x65,
+            (byte)0x22, (byte)0x69,
+            (byte)0x2D, (byte)0x70,
+            (byte)0x2D, (byte)0x71,
+            (byte)0x2D, (byte)0x77,
+            (byte)0x2D, (byte)0x7A,
+            (byte)0x2D, (byte)0x7B,
+            (byte)0x2D, (byte)0x7C,
+            (byte)0x1B, (byte)0x28, (byte)0x42,
+        };
+        String expectedStr = "\uffe2\u22a5\u221a\u222b\u2252\u2261\u2220\u2235\u2229\u222a";
+        if (!new String(encoded, "x-windows-iso2022jp").equals(expectedStr)) {
+               throw new Exception("MSISO2022JP Decoder error");
+        }
     }
 }
--- a/test/sun/nio/cs/TestJIS0212Decoder.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/nio/cs/TestJIS0212Decoder.java	Thu May 28 16:51:18 2015 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
-   @bug 4179800
+   @bug 4179800 8042125
    @summary Make sure JIS0212.Decoder really works
  */
 
@@ -38,25 +38,26 @@
                                             (byte)0x30, (byte)0x25, (byte)0x30, (byte)0x26,
                                             (byte)0x30, (byte)0x27};
 
-    public static void main(String args[])
-        throws Exception
-    {
+    public static void main(String args[]) throws Exception {
         test();
     }
 
-    private static void test()
-        throws Exception
-    {
+    private static void test() throws Exception {
         CharsetDecoder dec = Charset.forName("JIS0212").newDecoder();
         try {
             String ret = dec.decode(ByteBuffer.wrap(inputBytes)).toString();
             if (ret.length() != outputString.length()
                 || ! outputString.equals(ret)){
-                throw new Exception("ByteToCharJIS0212 does not work correctly");
+                throw new Exception("JIS0212 decoder does not work correctly");
             }
+        } catch (Exception e){
+            throw new Exception("JIS0212 encoder does not work correctly");
         }
-        catch (Exception e){
-            throw new Exception("ByteToCharJIS0212 does not work correctly");
+
+        // test 0x742c -> u2116 mapping
+        if (!"\u2116".equals(new String(new byte[] { (byte)0x8f, (byte)0xf4, (byte)0xac },
+                                        "x-eucJP-Open"))) {
+            throw new RuntimeException("JIS0212_Solaris nr mapping failed");
         }
     }
 }
--- a/test/sun/nio/cs/TestStringCoding.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/nio/cs/TestStringCoding.java	Thu May 28 16:51:18 2015 -0700
@@ -22,8 +22,9 @@
  */
 
 /* @test
-   @bug 6636323 6636319 7040220 7096080 7183053 8080248
-   @summary Test if StringCoding and NIO result have the same de/encoding result
+ * @bug 6636323 6636319 7040220 7096080 7183053 8080248
+ * @summary Test if StringCoding and NIO result have the same de/encoding result
+ * @modules java.base/sun.nio.cs
  * @run main/othervm/timeout=2000 TestStringCoding
  * @key randomness
  */
--- a/test/sun/reflect/AnonymousNewInstance/ManyNewInstanceAnonTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/reflect/AnonymousNewInstance/ManyNewInstanceAnonTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,8 +25,10 @@
  * @test
  * @bug 7194897
  * @summary JSR 292: Cannot create more than 16 instances of an anonymous class
+ * @modules java.base/sun.misc
+ * @modules java.management
+ * @library /lib/testlibrary
  * @author  Robert Field
- * @library /lib/testlibrary
  * @compile -XDignore.symbol.file ManyNewInstanceAnonTest.java
  * @build jdk.testlibrary.*
  * @run main ClassFileInstaller ManyNewInstanceAnonTest
--- a/test/sun/reflect/CallerSensitive/CallerSensitiveFinder.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/reflect/CallerSensitive/CallerSensitiveFinder.java	Thu May 28 16:51:18 2015 -0700
@@ -48,6 +48,7 @@
  * @bug 8010117
  * @summary Verify if CallerSensitive methods are annotated with
  *          sun.reflect.CallerSensitive annotation
+ * @modules jdk.compiler/com.sun.tools.classfile jdk.jdeps/com.sun.tools.jdeps
  * @build CallerSensitiveFinder
  * @run main/othervm/timeout=900 CallerSensitiveFinder
  */
--- a/test/sun/reflect/CallerSensitive/MissingCallerSensitive.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/reflect/CallerSensitive/MissingCallerSensitive.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,10 @@
  * @test
  * @bug 8010117
  * @summary Test CallerSensitiveFinder to find missing annotation
+ * @modules java.base/sun.reflect
+ *          jdk.jdeps/com.sun.tools.classfile
+ *          jdk.jdeps/com.sun.tools.jdeps
+ * @modules java.base/sun.reflect
  * @compile -XDignore.symbol.file MissingCallerSensitive.java
  * @build CallerSensitiveFinder
  * @run main MissingCallerSensitive
--- a/test/sun/reflect/Reflection/GetCallerClassWithDepth.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/reflect/Reflection/GetCallerClassWithDepth.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8025799
  * @summary sun.reflect.Reflection.getCallerClass(int)
+ * @modules java.base/sun.reflect
  * @run main GetCallerClassWithDepth
  */
 
--- a/test/sun/rmi/log/ReliableLog/LogAlignmentTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/log/ReliableLog/LogAlignmentTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @bug 4094889
  * @summary rmid can have a corrupted log
  *
+ * @modules java.rmi/sun.rmi.log
  * @run main/othervm LogAlignmentTest
  */
 
--- a/test/sun/rmi/log/ReliableLog/SnapshotSize.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/log/ReliableLog/SnapshotSize.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @summary Verify that ReliableLog.snapshotSize() returns correct snapshot
  *          file size even if LogHandler doesn't flush.
  *
+ * @modules java.rmi/sun.rmi.log
  * @run main/othervm SnapshotSize
  */
 
--- a/test/sun/rmi/rmic/classpath/RMICClassPathTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/rmic/classpath/RMICClassPathTest.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,8 @@
  * @summary New constructor in sun.tools.java.ClassPath builds a path using
  *          File.separator instead of File.pathSeparator. This test does
  *          not affect VM global state, so othervm is not required.
+ * @modules jdk.rmic/sun.rmi.rmic
+ *          jdk.rmic/sun.tools.java
  * @run main RMICClassPathTest
  */
 
--- a/test/sun/rmi/rmic/iiopCompilation/IIOPCompilation.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/rmic/iiopCompilation/IIOPCompilation.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,11 @@
 /* @test
  * @bug 8065957
  * @library ../../../../java/rmi/testlibrary
+ * @modules java.corba
+ *          java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @summary Compiles a PortableRemoteObject with rmic -iiop and ensures that stub and tie classes are generated.
  * @run main IIOPCompilation
--- a/test/sun/rmi/runtime/Log/4504153/Test4504153.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/runtime/Log/4504153/Test4504153.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Peter Jones
  *
  * @library ../../../../../java/rmi/testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build JavaVM
  * @run main/othervm Test4504153
  */
--- a/test/sun/rmi/runtime/Log/6409194/NoConsoleOutput.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/runtime/Log/6409194/NoConsoleOutput.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * @author Peter Jones
  *
  * @library ../../../../../java/rmi/testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary JavaVM
  * @run main/othervm NoConsoleOutput
  */
--- a/test/sun/rmi/runtime/Log/checkLogging/CheckLogStreams.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/runtime/Log/checkLogging/CheckLogStreams.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Laird Dornin
  *
  * @library ../../../../../java/rmi/testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary CheckLogging
  * @run main/othervm -Dsun.rmi.log.useOld=true CheckLogStreams
  */
--- a/test/sun/rmi/runtime/Log/checkLogging/CheckLogging.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/runtime/Log/checkLogging/CheckLogging.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,10 @@
  * @author Laird Dornin
  *
  * @library ../../../../../java/rmi/testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm CheckLogging
  */
--- a/test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub.java	Thu May 28 16:51:18 2015 -0700
@@ -31,6 +31,10 @@
  * @author Ann Wollrath
  *
  * @library ../../../../../java/rmi/testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary Receiver MarshalForeignStub_Stub
  * @run main/othervm/policy=security.policy MarshalForeignStub
  */
--- a/test/sun/rmi/transport/proxy/DisableHttpDefaultValue.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/transport/proxy/DisableHttpDefaultValue.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @bug 8023862
  * @summary Verify that the default value of the java.rmi.server.disableHttp
  *          has been changed from false to true.
+ * @modules java.rmi/sun.rmi.transport.proxy
  * @compile -XDignore.symbol.file DisableHttpDefaultValue.java
  *
  * @run main/othervm                                     DisableHttpDefaultValue true
--- a/test/sun/rmi/transport/proxy/EagerHttpFallback.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/transport/proxy/EagerHttpFallback.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,10 @@
  *          sun.rmi.transport.proxy.eagerHttpFallback system property is set.
  *
  * @library ../../../../java/rmi/testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary
  * @run main/othervm EagerHttpFallback
  */
--- a/test/sun/rmi/transport/tcp/DeadCachedConnection.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/transport/tcp/DeadCachedConnection.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,10 @@
  * @bug 4094891
  * @summary unable to retry call if cached connection to server is used
  * @library ../../../../java/rmi/testlibrary
+ * @modules java.rmi/sun.rmi.registry
+ *          java.rmi/sun.rmi.server
+ *          java.rmi/sun.rmi.transport
+ *          java.rmi/sun.rmi.transport.tcp
  * @build TestLibrary JavaVM
  * @run main/othervm DeadCachedConnection
  */
--- a/test/sun/rmi/transport/tcp/blockAccept/BlockAcceptTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/rmi/transport/tcp/blockAccept/BlockAcceptTest.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,7 @@
  * @author Adrian Colley
  *
  * @library ../../../../../java/rmi/testlibrary
+ * @modules java.rmi/sun.rmi.transport.proxy
  * @build TestIface TestImpl TestImpl_Stub
  * @run main/othervm/policy=security.policy/timeout=60 BlockAcceptTest
  */
--- a/test/sun/security/action/Generify.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/action/Generify.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 5057136
  * @summary Generify sun.security.action.GetPropertyAction and friends
+ * @modules java.base/sun.security.action
  */
 
 import java.io.*;
--- a/test/sun/security/action/GetLongAction/ReturnNullIfNoDefault.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/action/GetLongAction/ReturnNullIfNoDefault.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4173993
  * @summary Make sure "null" is returned if property does not exist (or has
  * wrong numeric format) and no default has been specified.
+ * @modules java.base/sun.security.action
  */
 
 import sun.security.action.*;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/sun/security/ec/SignatureOffsets.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SignatureException;
+
+/*
+ * @test
+ * @bug 8050374
+ * @key randomness
+ * @summary This test validates signature verification
+ *          Signature.verify(byte[], int, int). The test uses RandomFactory to
+ *          get random set of clear text data to sign. After the signature
+ *          generation, the test tries to verify signature with the above API
+ *          and passing in different signature offset (0, 33, 66, 99).
+ * @library /lib/testlibrary
+ * @compile ../../../java/security/Signature/Offsets.java
+ * @run main SignatureOffsets SunEC NONEwithECDSA
+ * @run main SignatureOffsets SunEC SHA1withECDSA
+ * @run main SignatureOffsets SunEC SHA256withECDSA
+ * @run main SignatureOffsets SunEC SHA224withECDSA
+ * @run main SignatureOffsets SunEC SHA384withECDSA
+ * @run main SignatureOffsets SunEC SHA512withECDSA
+ */
+public class SignatureOffsets {
+
+    public static void main(String[] args) throws NoSuchAlgorithmException,
+            InvalidKeyException, SignatureException {
+        Offsets.main(args);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/sun/security/ec/SignedObjectChain.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8050374
+ * @compile ../../../java/security/SignedObject/Chain.java
+ * @summary Verify a chain of signed objects
+ */
+public class SignedObjectChain {
+
+    private static class Test extends Chain.Test {
+
+        public Test(Chain.SigAlg sigAlg) {
+            super(sigAlg, Chain.KeyAlg.EC, Chain.Provider.SunEC);
+        }
+    }
+
+    private static final Test[] tests = {
+        new Test(Chain.SigAlg.SHA1withECDSA),
+        new Test(Chain.SigAlg.SHA256withECDSA),
+        new Test(Chain.SigAlg.SHA224withECDSA),
+        new Test(Chain.SigAlg.SHA384withECDSA),
+        new Test(Chain.SigAlg.SHA512withECDSA),
+    };
+
+    public static void main(String argv[]) {
+        boolean resutl = java.util.Arrays.stream(tests).allMatch(
+                (test) -> Chain.runTest(test));
+
+        if(resutl) {
+            System.out.println("All tests passed");
+        } else {
+            throw new RuntimeException("Some tests failed");
+        }
+    }
+}
--- a/test/sun/security/ec/TestEC.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/ec/TestEC.java	Thu May 28 16:51:18 2015 -0700
@@ -34,6 +34,7 @@
  * @library ../pkcs11/ec
  * @library ../pkcs11/sslecc
  * @library ../../../java/security/testlibrary
+ * @modules jdk.crypto.pkcs11/sun.security.pkcs11.wrapper
  * @compile -XDignore.symbol.file TestEC.java
  * @run main/othervm TestEC
  */
--- a/test/sun/security/jgss/DefaultGssConfig.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/jgss/DefaultGssConfig.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6483218
  * @summary Provide a default login configuration
+ * @modules java.security.jgss/sun.security.jgss
  */
 
 import java.io.FileNotFoundException;
--- a/test/sun/security/jgss/GssNPE.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/jgss/GssNPE.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 6345338
+ * @modules java.security.jgss/sun.security.jgss
  * @run main/othervm GssNPE
  * @summary GSS throws NPE when the JAAS config file does not exist
  */
--- a/test/sun/security/jgss/spnego/NegTokenTargFields.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/jgss/spnego/NegTokenTargFields.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 7040151
  * @summary SPNEGO GSS code does not parse tokens in accordance to RFC 2478
+ * @modules java.security.jgss/sun.security.jgss.spnego
  * @compile -XDignore.symbol.file NegTokenTargFields.java
  * @run main NegTokenTargFields nomech
  * @run main/fail NegTokenTargFields badorder
--- a/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 6770883
+ * @modules java.security.jgss/sun.security.jgss
  * @run main/othervm NoSpnegoAsDefMech
  * @summary Infinite loop if SPNEGO specified as sun.security.jgss.mechanism
  */
--- a/test/sun/security/jgss/spnego/NotPreferredMech.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/jgss/spnego/NotPreferredMech.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,9 @@
 /*
  * @test
  * @bug 8048194
+ * @modules java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.jgss.spnego
  * @run main/othervm NotPreferredMech
  * @summary GSSContext.acceptSecContext fails when a supported mech is not initiator preferred
  */
--- a/test/sun/security/krb5/KrbCredSubKey.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/KrbCredSubKey.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
 /**
  * @test
  * @bug 7030180
+ * @modules java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
  * @run main/othervm KrbCredSubKey
  * @summary AES 128/256 decrypt exception
  */
--- a/test/sun/security/krb5/MicroTime.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/MicroTime.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
  * @test
  * @bug 6882687 8011124
  * @summary KerberosTime too imprecise
+ * @modules java.security.jgss/sun.security.krb5.internal
  */
 
 import sun.security.krb5.internal.KerberosTime;
--- a/test/sun/security/krb5/NegativeNonce.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/NegativeNonce.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
  * @test
  * @bug 6517944
  * @summary Nonce should be UInt32
+ * @modules java.security.jgss/sun.security.krb5.internal.crypto
  */
 
 import sun.security.krb5.internal.crypto.Nonce;
--- a/test/sun/security/krb5/OptionPADataInKDCReq.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/OptionPADataInKDCReq.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
  * @test
  * @bug 6648972
  * @summary KDCReq.init always read padata
+ * @modules java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5.internal
  */
 import sun.security.krb5.internal.ETypeInfo2;
 import sun.security.krb5.internal.KDCReq;
--- a/test/sun/security/krb5/RFC396xTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/RFC396xTest.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,9 @@
 /*
  * @test
  * @bug 6862679
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.crypto.dk
  * @run main/othervm RFC396xTest
  * @summary ESC: AD Authentication with user with umlauts fails
  */
--- a/test/sun/security/krb5/ServiceCredsCombination.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/ServiceCredsCombination.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 8005447
+ * @modules java.security.jgss/sun.security.jgss
  * @compile -XDignore.symbol.file ServiceCredsCombination.java
  * @run main ServiceCredsCombination
  * @summary default principal can act as anyone
--- a/test/sun/security/krb5/TestPAData.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/TestPAData.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
  * @test
  * @bug 6570062
  * @summary Kerberos authentication regression
+ * @modules java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5.internal
  */
 
 import sun.security.krb5.internal.KRBError;
--- a/test/sun/security/krb5/UnknownCCEntry.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/UnknownCCEntry.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
  * @test
  * @bug 6979329
  * @summary CCacheInputStream fails to read ticket cache files from Kerberos 1.8.1
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.ccache
  */
 
 import java.io.ByteArrayInputStream;
--- a/test/sun/security/krb5/auto/AcceptPermissions.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/AcceptPermissions.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 9999999
  * @summary default principal can act as anyone
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file AcceptPermissions.java
  * @run main/othervm AcceptPermissions two
  * @run main/othervm AcceptPermissions unbound
--- a/test/sun/security/krb5/auto/AcceptorSubKey.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/AcceptorSubKey.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 7077646
  * @summary gssapi wrap for CFX per-message tokens always set FLAG_ACCEPTOR_SUBKEY
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file AcceptorSubKey.java
  * @run main/othervm AcceptorSubKey 0
  * @run main/othervm AcceptorSubKey 4
--- a/test/sun/security/krb5/auto/AddressesAndNameType.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/AddressesAndNameType.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 4501327 4868379 8039132
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm AddressesAndNameType 1
  * @run main/othervm AddressesAndNameType 2
  * @run main/othervm AddressesAndNameType 3
--- a/test/sun/security/krb5/auto/BadKdc1.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/BadKdc1.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 6843127
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm/timeout=300 BadKdc1
  * @summary krb5 should not try to access unavailable kdc too often
  */
--- a/test/sun/security/krb5/auto/BadKdc2.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/BadKdc2.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 6843127
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm/timeout=300 BadKdc2
  * @summary krb5 should not try to access unavailable kdc too often
  */
--- a/test/sun/security/krb5/auto/BadKdc3.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/BadKdc3.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 6843127
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm/timeout=300 BadKdc3
  * @summary krb5 should not try to access unavailable kdc too often
  */
--- a/test/sun/security/krb5/auto/BadKdc4.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/BadKdc4.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 6843127
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm/timeout=300 BadKdc4
  * @summary krb5 should not try to access unavailable kdc too often
  */
--- a/test/sun/security/krb5/auto/Basic.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/Basic.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 7152176
  * @summary More krb5 tests
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file Basic.java
  * @run main/othervm Basic
  */
--- a/test/sun/security/krb5/auto/BasicKrb5Test.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/BasicKrb5Test.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 6706974
  * @summary Add krb5 test infrastructure
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file BasicKrb5Test.java
  * @run main/othervm BasicKrb5Test
  * @run main/othervm BasicKrb5Test des-cbc-crc
--- a/test/sun/security/krb5/auto/BasicProc.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/BasicProc.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,13 @@
  * @bug 8009977
  * @summary A test library to launch multiple Java processes
  * @library ../../../../java/security/testlibrary/
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file BasicProc.java
  * @run main/othervm BasicProc
  */
--- a/test/sun/security/krb5/auto/CleanState.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/CleanState.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 6716534
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file CleanState.java
  * @run main/othervm CleanState
  * @summary Krb5LoginModule has not cleaned temp info between authentication attempts
--- a/test/sun/security/krb5/auto/CrossRealm.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/CrossRealm.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 6706974
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file CrossRealm.java
  * @run main/othervm CrossRealm
  * @summary Add krb5 test infrastructure
--- a/test/sun/security/krb5/auto/DiffNameSameKey.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/DiffNameSameKey.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8005447
  * @summary default principal can act as anyone
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file DiffNameSameKey.java
  * @run main/othervm/fail DiffNameSameKey a
  * @run main/othervm DiffNameSameKey b
--- a/test/sun/security/krb5/auto/DupEtypes.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/DupEtypes.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 7067974
  * @summary multiple ETYPE-INFO-ENTRY with same etype and different salt
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file DupEtypes.java
  * @run main/othervm DupEtypes 1
  * @run main/othervm DupEtypes 2
--- a/test/sun/security/krb5/auto/DynamicKeytab.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/DynamicKeytab.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 6894072
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file DynamicKeytab.java
  * @run main/othervm DynamicKeytab
  * @summary always refresh keytab
--- a/test/sun/security/krb5/auto/EmptyPassword.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/EmptyPassword.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,13 @@
  * @test
  * @bug 6879540
  * @summary enable empty password for kerberos 5
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file EmptyPassword.java
  * @run main/othervm EmptyPassword
  */
--- a/test/sun/security/krb5/auto/FileKeyTab.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/FileKeyTab.java	Thu May 28 16:51:18 2015 -0700
@@ -25,13 +25,19 @@
  * @test
  * @bug 7152121
  * @summary Krb5LoginModule no longer handles keyTabNames with "file:" prefix
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file FileKeyTab.java
  * @run main/othervm FileKeyTab
  */
 
 import java.io.File;
 import java.io.FileOutputStream;
-import sun.security.jgss.GSSUtil;
 
 // The basic krb5 test skeleton you can copy from
 public class FileKeyTab {
--- a/test/sun/security/krb5/auto/ForwardableCheck.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/ForwardableCheck.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8022582
  * @summary Relax response flags checking in sun.security.krb5.KrbKdcRep.check.
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file ForwardableCheck.java
  * @run main/othervm ForwardableCheck
  */
--- a/test/sun/security/krb5/auto/GSS.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/GSS.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 7152176
  * @summary More krb5 tests
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file GSS.java
  * @run main/othervm GSS
  */
--- a/test/sun/security/krb5/auto/GSSUnbound.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/GSSUnbound.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8001104
  * @summary Unbound SASL service: the GSSAPI/krb5 mech
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file GSSUnbound.java
  * @run main/othervm GSSUnbound
  */
--- a/test/sun/security/krb5/auto/HttpNegotiateServer.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/HttpNegotiateServer.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,15 @@
 /*
  * @test
  * @bug 6578647 6829283
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.base/sun.util.logging
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm HttpNegotiateServer
  * @summary Undefined requesting URL in java.net.Authenticator.getPasswordAuthentication()
  * @summary HTTP/Negotiate: Authenticator triggered again when user cancels the first one
--- a/test/sun/security/krb5/auto/IgnoreChannelBinding.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/IgnoreChannelBinding.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 6851973
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm IgnoreChannelBinding
  * @summary ignore incoming channel binding if acceptor does not set one
  */
--- a/test/sun/security/krb5/auto/KPEquals.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/KPEquals.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8015669
  * @summary KerberosPrincipal::equals should ignore name-type
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file KPEquals.java
  * @run main/othervm KPEquals
  */
--- a/test/sun/security/krb5/auto/KeyPermissions.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/KeyPermissions.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8004488
  * @summary wrong permissions checked in krb5
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file KeyPermissions.java
  * @run main/othervm KeyPermissions
  */
--- a/test/sun/security/krb5/auto/KeyTabCompat.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/KeyTabCompat.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 6894072
  * @bug 8004488
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file KeyTabCompat.java
  * @run main/othervm KeyTabCompat
  * @summary always refresh keytab
--- a/test/sun/security/krb5/auto/KvnoNA.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/KvnoNA.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 7197159
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file KvnoNA.java
  * @run main/othervm KvnoNA
  * @summary accept different kvno if there no match
--- a/test/sun/security/krb5/auto/LifeTimeInSeconds.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/LifeTimeInSeconds.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 6857802
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm LifeTimeInSeconds
  * @summary GSS getRemainingInitLifetime method returns milliseconds not seconds
  */
--- a/test/sun/security/krb5/auto/LoginModuleOptions.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/LoginModuleOptions.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 6765491
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm LoginModuleOptions
  * @summary Krb5LoginModule a little too restrictive, and the doc is not clear.
  */
--- a/test/sun/security/krb5/auto/LoginNoPass.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/LoginNoPass.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8028351
  * @summary JWS doesn't get authenticated when using kerberos auth proxy
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file LoginNoPass.java
  * @run main/othervm LoginNoPass
  */
--- a/test/sun/security/krb5/auto/MSOID2.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/MSOID2.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,15 @@
  * @test
  * @bug 8078439
  * @summary SPNEGO auth fails if client proposes MS krb5 OID
+ * @modules java.base/sun.misc
+ *          java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file MSOID2.java
  * @run main/othervm MSOID2
  */
--- a/test/sun/security/krb5/auto/MaxRetries.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/MaxRetries.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 6844193
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file MaxRetries.java
  * @run main/othervm/timeout=300 MaxRetries
  * @summary support max_retries in krb5.conf
--- a/test/sun/security/krb5/auto/MoreKvno.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/MoreKvno.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 6893158 6907425 7197159
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm MoreKvno
  * @summary AP_REQ check should use key version number
  */
--- a/test/sun/security/krb5/auto/NewInquireTypes.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/NewInquireTypes.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8043071
  * @summary Expose session key and KRB_CRED through extended GSS-API
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file NewInquireTypes.java
  * @run main/othervm NewInquireTypes
  */
--- a/test/sun/security/krb5/auto/NewSalt.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/NewSalt.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 6960894
  * @summary Better AS-REQ creation and processing
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm NewSalt
  * @run main/othervm -Dnopreauth NewSalt
  * @run main/othervm -Donlyonepreauth NewSalt
--- a/test/sun/security/krb5/auto/NoAddresses.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/NoAddresses.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 7032354
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm NoAddresses 1
  * @run main/othervm NoAddresses 2
  * @run main/othervm/fail NoAddresses 3
--- a/test/sun/security/krb5/auto/NoInitNoKeytab.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/NoInitNoKeytab.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 7089889
  * @summary Krb5LoginModule.login() throws an exception if used without a keytab
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file NoInitNoKeytab.java
  * @run main/othervm NoInitNoKeytab
  */
--- a/test/sun/security/krb5/auto/NonMutualSpnego.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/NonMutualSpnego.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 6733095
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm NonMutualSpnego
  * @summary Failure when SPNEGO request non-Mutual
  */
--- a/test/sun/security/krb5/auto/NoneReplayCacheTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/NoneReplayCacheTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 8001326
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm NoneReplayCacheTest
  * @summary the replaycache type none cannot stop an authenticator replay,
  * but it can stop a message replay when s.s.k.acceptor.subkey is true.
--- a/test/sun/security/krb5/auto/OkAsDelegate.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/OkAsDelegate.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 6853328 7172701
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm OkAsDelegate false true true false false false
  *      FORWARDABLE ticket not allowed, always fail
  * @run main/othervm OkAsDelegate true false false false false false
--- a/test/sun/security/krb5/auto/OkAsDelegateXRealm.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/OkAsDelegateXRealm.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 6853328 7172701
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm OkAsDelegateXRealm false
  *      KDC no OK-AS-DELEGATE, fail
  * @run main/othervm -Dtest.kdc.policy.ok-as-delegate OkAsDelegateXRealm true
--- a/test/sun/security/krb5/auto/OnlyDesLogin.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/OnlyDesLogin.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,13 @@
  * @test
  * @bug 8014310
  * @summary JAAS/Krb5LoginModule using des encytypes failure with NPE after JDK-8012679
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file OnlyDesLogin.java
  * @run main/othervm OnlyDesLogin
  */
--- a/test/sun/security/krb5/auto/PrincipalNameEquals.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/PrincipalNameEquals.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 7061379
  * @summary [Kerberos] Cross-realm authentication fails, due to nameType problem
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file PrincipalNameEquals.java
  * @run main/othervm PrincipalNameEquals
  */
--- a/test/sun/security/krb5/auto/RRC.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/RRC.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 7077640
  * @summary gss wrap for cfx doesn't handle rrc != 0
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file RRC.java
  * @run main/othervm RRC
  */
--- a/test/sun/security/krb5/auto/Renewal.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/Renewal.java	Thu May 28 16:51:18 2015 -0700
@@ -27,11 +27,17 @@
  * @summary Add kinit options and krb5.conf flags that allow users to
  *          obtain renewable tickets and specify ticket lifetimes
  * @library ../../../../java/security/testlibrary/
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file Renewal.java
  * @run main/othervm Renewal
  */
 
-import sun.security.jgss.GSSUtil;
 import sun.security.krb5.Config;
 import sun.security.krb5.internal.ccache.Credentials;
 import sun.security.krb5.internal.ccache.FileCredentialsCache;
--- a/test/sun/security/krb5/auto/ReplayCacheExpunge.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/ReplayCacheExpunge.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
 /*
  * @test
  * @bug 8001326
+ * @modules java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.rcache
  * @run main/othervm ReplayCacheExpunge 16
  * @run main/othervm/fail ReplayCacheExpunge 15
  * @summary when number of expired entries minus number of good entries
--- a/test/sun/security/krb5/auto/ReplayCachePrecise.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/ReplayCachePrecise.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,9 @@
 /*
  * @test
  * @bug 8001326
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.rcache
  * @run main/othervm ReplayCachePrecise
  * @summary when there are 2 two AuthTime with the same time but different hash,
  * it's not a replay.
--- a/test/sun/security/krb5/auto/ReplayCacheTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/ReplayCacheTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 7118809 8001326
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm ReplayCacheTest jvm
  * @run main/othervm ReplayCacheTest dfl
  * @summary rcache deadlock
--- a/test/sun/security/krb5/auto/ReplayCacheTestProc.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/ReplayCacheTestProc.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,16 @@
  * @bug 7152176
  * @summary More krb5 tests
  * @library ../../../../java/security/testlibrary/
+ * @modules java.base/sun.misc
+ *          java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
+ *          java.security.jgss/sun.security.krb5.internal.rcache
  * @compile -XDignore.symbol.file ReplayCacheTestProc.java
  * @run main/othervm/timeout=100 ReplayCacheTestProc
  */
--- a/test/sun/security/krb5/auto/S4U2proxy.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/S4U2proxy.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 6355584 8044215
  * @summary Introduce constrained Kerberos delegation
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file S4U2proxy.java
  * @run main/othervm S4U2proxy krb5
  * @run main/othervm S4U2proxy spnego
--- a/test/sun/security/krb5/auto/S4U2proxyGSS.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/S4U2proxyGSS.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 6355584
  * @summary Introduce constrained Kerberos delegation
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file S4U2proxyGSS.java
  * @run main/othervm -Djavax.security.auth.useSubjectCredsOnly=false S4U2proxyGSS krb5
  * @run main/othervm -Djavax.security.auth.useSubjectCredsOnly=false S4U2proxyGSS spnego
--- a/test/sun/security/krb5/auto/S4U2self.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/S4U2self.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 6355584
  * @summary Introduce constrained Kerberos delegation
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file S4U2self.java
  * @run main/othervm -Dsun.security.krb5.debug=false S4U2self krb5 0
  * @run main/othervm/fail -Dsun.security.krb5.debug=false S4U2self krb5 1
--- a/test/sun/security/krb5/auto/S4U2selfAsServer.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/S4U2selfAsServer.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 6355584
  * @summary Introduce constrained Kerberos delegation
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file S4U2selfAsServer.java
  * @run main/othervm S4U2selfAsServer krb5
  * @run main/othervm S4U2selfAsServer spnego
--- a/test/sun/security/krb5/auto/S4U2selfAsServerGSS.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/S4U2selfAsServerGSS.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 6355584
  * @summary Introduce constrained Kerberos delegation
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file S4U2selfAsServerGSS.java
  * @run main/othervm -Djavax.security.auth.useSubjectCredsOnly=false S4U2selfAsServerGSS krb5
  * @run main/othervm -Djavax.security.auth.useSubjectCredsOnly=false S4U2selfAsServerGSS spnego
--- a/test/sun/security/krb5/auto/S4U2selfGSS.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/S4U2selfGSS.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 6355584
  * @summary Introduce constrained Kerberos delegation
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file S4U2selfGSS.java
  * @run main/othervm -Dsun.security.krb5.debug=false S4U2selfGSS krb5
  * @run main/othervm -Dsun.security.krb5.debug=false S4U2selfGSS spnego
--- a/test/sun/security/krb5/auto/SPNEGO.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/SPNEGO.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 7040151
  * @summary SPNEGO GSS code does not parse tokens in accordance to RFC 2478
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file SPNEGO.java
  * @run main/othervm SPNEGO
  */
--- a/test/sun/security/krb5/auto/SSL.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/SSL.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,14 @@
  * @bug 6894643 6913636 8005523 8025123
  * @summary Test JSSE Kerberos ciphersuite
 
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm SSL TLS_KRB5_WITH_RC4_128_SHA
  * @run main/othervm SSL TLS_KRB5_WITH_RC4_128_SHA unbound
  * @run main/othervm SSL TLS_KRB5_WITH_RC4_128_SHA unbound sni
--- a/test/sun/security/krb5/auto/SaslBasic.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/SaslBasic.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 7110803
  * @summary SASL service for multiple hostnames
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
+ *          java.security.sasl
  * @compile -XDignore.symbol.file SaslBasic.java
  * @run main/othervm SaslBasic bound
  * @run main/othervm SaslBasic unbound
--- a/test/sun/security/krb5/auto/SaslGSS.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/SaslGSS.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,15 @@
  * @bug 8012082 8019267
  * @summary SASL: auth-conf negotiated, but unencrypted data is accepted,
   *         reset to unencrypt
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
+ *          java.security.sasl
  * @compile -XDignore.symbol.file SaslGSS.java
  * @run main/othervm SaslGSS
  */
--- a/test/sun/security/krb5/auto/SaslUnbound.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/SaslUnbound.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8001104
  * @summary Unbound SASL service: the GSSAPI/krb5 mech
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
+ *          java.security.sasl
  * @compile -XDignore.symbol.file SaslUnbound.java
  * @run main/othervm SaslUnbound 0
  * @run main/othervm/fail SaslUnbound 1
--- a/test/sun/security/krb5/auto/SpnegoLifeTime.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/SpnegoLifeTime.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8000653
  * @summary SPNEGO tests fail at context.getDelegCred().getRemainingInitLifetime(mechOid)
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file SpnegoLifeTime.java
  * @run main/othervm SpnegoLifeTime
  */
--- a/test/sun/security/krb5/auto/SpnegoReqFlags.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/SpnegoReqFlags.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 6815182
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm SpnegoReqFlags
  * @summary GSSAPI/SPNEGO does not work with server using MIT Kerberos library
  */
--- a/test/sun/security/krb5/auto/TcpTimeout.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/TcpTimeout.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 6952519
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file TcpTimeout.java
  * @run main/othervm TcpTimeout
  * @summary kdc_timeout is not being honoured when using TCP
--- a/test/sun/security/krb5/auto/Test5653.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/Test5653.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 6895424
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm Test5653
  * @summary RFC 5653
  */
--- a/test/sun/security/krb5/auto/TwoOrThree.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/TwoOrThree.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8005447
  * @summary default principal can act as anyone
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file TwoOrThree.java
  * @run main/othervm TwoOrThree first first
  * @run main/othervm/fail TwoOrThree first second
--- a/test/sun/security/krb5/auto/TwoPrinces.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/TwoPrinces.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,14 @@
 /*
  * @test
  * @bug 6894072
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file TwoPrinces.java
  * @run main/othervm TwoPrinces
  * @summary always refresh keytab
--- a/test/sun/security/krb5/auto/TwoTab.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/TwoTab.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 7152176
  * @summary More krb5 tests
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file TwoTab.java
  * @run main/othervm TwoTab
  */
--- a/test/sun/security/krb5/auto/UdpTcp.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/UdpTcp.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,13 @@
 /*
  * @test
  * @bug 4966382 8039132
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm UdpTcp UDP
  * @run main/othervm UdpTcp TCP
  * @summary udp or tcp
--- a/test/sun/security/krb5/auto/UnboundService.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/UnboundService.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,14 @@
  * @test
  * @bug 8001104
  * @summary Unbound SASL service: the GSSAPI/krb5 mech
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.jgss
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file UnboundService.java
  * @run main/othervm UnboundService null null
  * @run main/othervm UnboundService server/host.rabbit.hole null
--- a/test/sun/security/krb5/auto/Unreachable.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/Unreachable.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 7162687
  * @summary enhance KDC server availability detection
+ * @modules java.security.jgss/sun.security.krb5
  * @compile -XDignore.symbol.file Unreachable.java
  * @run main/othervm/timeout=10 Unreachable
  */
--- a/test/sun/security/krb5/auto/UseCacheAndStoreKey.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/UseCacheAndStoreKey.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,13 @@
  * @bug 7201053
  * @summary Krb5LoginModule shows NPE when both useTicketCache and storeKey
  *          are set to true
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @compile -XDignore.symbol.file UseCacheAndStoreKey.java
  * @run main/othervm UseCacheAndStoreKey
  */
--- a/test/sun/security/krb5/auto/W83.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/auto/W83.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,13 @@
  * @bug 6932525 6951366 6959292
  * @summary kerberos login failure on win2008 with AD set to win2000 compat mode
  * and cannot login if session key and preauth does not use the same etype
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.base/sun.security.util
+ *          java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ccache
+ *          java.security.jgss/sun.security.krb5.internal.crypto
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm -D6932525 W83
  * @run main/othervm -D6959292 W83
  */
--- a/test/sun/security/krb5/canonicalize/Test.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/canonicalize/Test.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
  * @test
  * @bug 6682516
  * @summary SPNEGO_HTTP_AUTH/WWW_KRB and SPNEGO_HTTP_AUTH/WWW_SPNEGO failed on all non-windows platforms
+ * @modules java.base/sun.net.spi.nameservice
+ *          java.security.jgss/sun.security.krb5
  * @run main/othervm -Dsun.net.spi.nameservice.provider.1=ns,mock -Djava.security.krb5.conf=krb5.conf Test
  */
 
--- a/test/sun/security/krb5/ccache/CorruptedCC.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/ccache/CorruptedCC.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 8028780
  * @summary JDK KRB5 module throws OutOfMemoryError when CCache is corrupt
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.ccache
  * @run main/othervm -Xmx8m CorruptedCC
  */
 import java.nio.file.Files;
--- a/test/sun/security/krb5/ccache/DefaultFile.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/ccache/DefaultFile.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8054817
  * @summary File ccache only recognizes Linux and Solaris defaults
+ * @modules java.security.jgss/sun.security.krb5.internal.ccache
  */
 
 import sun.security.krb5.internal.ccache.FileCredentialsCache;
--- a/test/sun/security/krb5/ccache/EmptyCC.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/ccache/EmptyCC.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,8 @@
  * @bug 8001208
  * @summary NPE in sun.security.krb5.Credentials.acquireDefaultCreds()
  * @library ../../../../java/security/testlibrary/
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.ccache
  * @compile -XDignore.symbol.file EmptyCC.java
  * @run main EmptyCC tmpcc
  * @run main EmptyCC FILE:tmpcc
--- a/test/sun/security/krb5/ccache/EmptyRealmCC.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/ccache/EmptyRealmCC.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 8048073
  * @summary Cannot read ccache entry with a realm-less service name
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.ccache
  * @compile -XDignore.symbol.file EmptyRealmCC.java
  * @run main EmptyRealmCC
  */
--- a/test/sun/security/krb5/ccache/TimeInCCache.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/ccache/TimeInCCache.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,8 @@
 /*
  * @test
  * @bug 6590930
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.ccache
  * @run main/othervm TimeInCCache
  * @summary read/write does not match for ccache
  */
--- a/test/sun/security/krb5/config/ConfigWithQuotations.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/ConfigWithQuotations.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 6714845
+ * @modules java.security.jgss/sun.security.krb5
  * @run main/othervm ConfigWithQuotations
  * @summary Quotes in Kerberos configuration file are included in the values
  */
--- a/test/sun/security/krb5/config/DefUdpLimit.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/DefUdpLimit.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8009875
  * @summary Provide a default udp_preference_limit for krb5.conf
+ * @modules java.security.jgss/sun.security.krb5
  * @compile -XDignore.symbol.file DefUdpLimit.java
  * @run main/othervm DefUdpLimit -1 1465
  * @run main/othervm DefUdpLimit 0 0
--- a/test/sun/security/krb5/config/DnsFallback.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/DnsFallback.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 6673164 6552334 8077102
+ * @modules java.security.jgss/sun.security.krb5
  * @run main/othervm DnsFallback
  * @summary fix dns_fallback parse error, and use dns by default
  */
--- a/test/sun/security/krb5/config/Duplicates.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/Duplicates.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 7184246
+ * @modules java.security.jgss/sun.security.krb5
  * @compile -XDignore.symbol.file Duplicates.java
  * @run main/othervm Duplicates
  * @summary Simplify Config.get() of krb5
--- a/test/sun/security/krb5/config/Duration.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/Duration.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 8044500
  * @summary Add kinit options and krb5.conf flags that allow users to
  *          obtain renewable tickets and specify ticket lifetimes
+ * @modules java.security.jgss/sun.security.krb5
  * @compile -XDignore.symbol.file Duration.java
  * @run main Duration
  */
--- a/test/sun/security/krb5/config/ExtraLines.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/ExtraLines.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 8036971
+ * @modules java.security.jgss/sun.security.krb5
  * @compile -XDignore.symbol.file ExtraLines.java
  * @run main/othervm ExtraLines
  * @summary krb5.conf does not accept directive lines before the first section
--- a/test/sun/security/krb5/config/Include.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/Include.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8029994
  * @summary Support "include" and "includedir" in krb5.conf
+ * @modules java.security.jgss/sun.security.krb5
  * @compile -XDignore.symbol.file Include.java
  * @run main/othervm Include
  */
--- a/test/sun/security/krb5/config/KdcDefaultOptions.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/KdcDefaultOptions.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
  * @test
  * @bug 7195426
  * @summary kdc_default_options not supported correctly
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
  * @compile -XDignore.symbol.file KdcDefaultOptions.java
  * @run main/othervm KdcDefaultOptions
  */
--- a/test/sun/security/krb5/config/ParseCAPaths.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/ParseCAPaths.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 6789935 8012615
+ * @modules java.security.jgss/sun.security.krb5
  * @run main/othervm ParseCAPaths
  * @summary cross-realm capath search error
  */
--- a/test/sun/security/krb5/config/ParseConfig.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/ParseConfig.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 6319046 8055045
+ * @modules java.security.jgss/sun.security.krb5
  * @compile -XDignore.symbol.file ParseConfig.java
  * @run main/othervm ParseConfig
  * @summary Problem with parsing krb5.conf
--- a/test/sun/security/krb5/config/SCDynamicConfigTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/SCDynamicConfigTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 7184246
  * @summary Simplify Config.get() of krb5
+ * @modules java.security.jgss/sun.security.krb5
  */
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
--- a/test/sun/security/krb5/config/YesNo.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/config/YesNo.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 8029995
  * @summary accept yes/no for boolean krb5.conf settings
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.crypto
  * @compile -XDignore.symbol.file YesNo.java
  * @run main/othervm YesNo
  */
--- a/test/sun/security/krb5/etype/ETypeOrder.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/etype/ETypeOrder.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 6844907
+ * @modules java.security.jgss/sun.security.krb5.internal.crypto
  * @run main/othervm ETypeOrder
  * @summary krb5 etype order should be from strong to weak
  */
--- a/test/sun/security/krb5/etype/WeakCrypto.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/etype/WeakCrypto.java	Thu May 28 16:51:18 2015 -0700
@@ -23,6 +23,8 @@
 /*
  * @test
  * @bug 6844909 8012679
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.crypto
  * @run main/othervm WeakCrypto
  * @run main/othervm WeakCrypto true
  * @run main/othervm WeakCrypto false
--- a/test/sun/security/krb5/ktab/FileKeyTab.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/ktab/FileKeyTab.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
  * @test
  * @bug 7144530
  * @summary KeyTab.getInstance(String) no longer handles keyTabNames with "file:" prefix
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  */
 import java.io.File;
 import sun.security.krb5.PrincipalName;
--- a/test/sun/security/krb5/ktab/HighestKvno.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/ktab/HighestKvno.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
  * @test
  * @bug 6867665
  * @bug 6875033
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  * @run main/othervm HighestKvno
  * @summary Problem with keytabs with multiple kvno's (key versions)
  */
--- a/test/sun/security/krb5/ktab/KeyString.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/ktab/KeyString.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,9 @@
  * @test
  * @bug 6917791
  * @summary KeyTabEntry, when the byte value smaller then 16, the string drop '0'
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  */
 
 import sun.security.krb5.internal.ktab.KeyTabEntry;
--- a/test/sun/security/krb5/ktab/KeyTabIndex.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/ktab/KeyTabIndex.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
  * @test
  * @bug 6919610
  * @summary KeyTabInputStream uses static field for per-instance value
+ * @modules java.security.jgss/sun.security.krb5
+ *          java.security.jgss/sun.security.krb5.internal.ktab
  */
 import sun.security.krb5.PrincipalName;
 import sun.security.krb5.internal.ktab.KeyTab;
--- a/test/sun/security/krb5/name/Constructors.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/name/Constructors.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
  * @test
  * @bug 6966259
  * @summary Make PrincipalName and Realm immutable
+ * @modules java.security.jgss/sun.security.krb5
  * @run main/othervm Constructors
  */
 
--- a/test/sun/security/krb5/name/Immutable.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/name/Immutable.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8005460
  * @summary [findbugs] Probably returned array should be cloned
+ * @modules java.security.jgss/sun.security.krb5
  */
 
 import sun.security.krb5.PrincipalName;
--- a/test/sun/security/krb5/tools/KtabZero.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/krb5/tools/KtabZero.java	Thu May 28 16:51:18 2015 -0700
@@ -33,6 +33,7 @@
  * @test
  * @bug 8014196
  * @summary ktab creates a file with zero kt_vno
+ * @modules java.security.jgss/sun.security.krb5.internal.ktab
  */
 public class KtabZero {
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/sun/security/mscapi/SignatureOffsets.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SignatureException;
+
+/*
+ * @test
+ * @bug 8050374
+ * @key randomness
+ * @summary This test validates signature verification
+ *          Signature.verify(byte[], int, int). The test uses RandomFactory to
+ *          get random set of clear text data to sign. After the signature
+ *          generation, the test tries to verify signature with the above API
+ *          and passing in different signature offset (0, 33, 66, 99).
+ * @library /lib/testlibrary
+ * @compile ../../../java/security/Signature/Offsets.java
+ * @run main SignatureOffsets SunMSCAPI NONEwithRSA
+ * @run main SignatureOffsets SunMSCAPI MD2withRSA
+ * @run main SignatureOffsets SunMSCAPI MD5withRSA
+ * @run main SignatureOffsets SunMSCAPI SHA1withRSA
+ * @run main SignatureOffsets SunMSCAPI SHA256withRSA
+ * @run main SignatureOffsets SunMSCAPI SHA384withRSA
+ * @run main SignatureOffsets SunMSCAPI SHA512withRSA
+ */
+public class SignatureOffsets {
+
+    public static void main(String[] args) throws NoSuchAlgorithmException,
+            InvalidKeyException, SignatureException {
+        Offsets.main(args);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/sun/security/mscapi/SignedObjectChain.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8050374
+ * @compile ../../../java/security/SignedObject/Chain.java
+ * @summary Verify a chain of signed objects
+ */
+public class SignedObjectChain {
+
+    private static class Test extends Chain.Test {
+
+        public Test(Chain.SigAlg sigAlg) {
+            super(sigAlg, Chain.KeyAlg.RSA, Chain.Provider.SunMSCAPI);
+        }
+    }
+
+    private static final Test[] tests = {
+        new Test(Chain.SigAlg.MD2withRSA),
+        new Test(Chain.SigAlg.MD5withRSA),
+        new Test(Chain.SigAlg.SHA1withRSA),
+        new Test(Chain.SigAlg.SHA256withRSA),
+        new Test(Chain.SigAlg.SHA384withRSA),
+        new Test(Chain.SigAlg.SHA512withRSA),
+    };
+
+    public static void main(String argv[]) {
+        boolean resutl = java.util.Arrays.stream(tests).allMatch(
+                (test) -> Chain.runTest(test));
+
+        if(resutl) {
+            System.out.println("All tests passed");
+        } else {
+            throw new RuntimeException("Some tests failed");
+        }
+    }
+}
--- a/test/sun/security/pkcs/EncryptedPrivateKeyInfo/EncryptedPKInfoEqualsHashCode.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs/EncryptedPrivateKeyInfo/EncryptedPKInfoEqualsHashCode.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @author Gary Ellison
  * @bug 4170635
  * @summary Verify equals()/hashCode() contract honored
+ * @modules java.base/sun.security.pkcs
+ *          java.base/sun.security.x509
  */
 
 import java.io.*;
--- a/test/sun/security/pkcs/pkcs9/UnknownAttribute.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs/pkcs9/UnknownAttribute.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,9 @@
  * @test
  * @bug 8011867
  * @summary Accept unknown PKCS #9 attributes
+ * @modules java.base/sun.misc
+ *          java.base/sun.security.pkcs
+ *          java.base/sun.security.util
  */
 
 import java.io.*;
--- a/test/sun/security/pkcs/pkcs9/UnstructuredName.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs/pkcs9/UnstructuredName.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8016916
  * @summary UnstructuredName should support DirectoryString
+ * @modules java.base/sun.security.pkcs10
  */
 
 import java.util.Base64;
--- a/test/sun/security/pkcs11/KeyStore/Basic.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/KeyStore/Basic.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,6 @@
 
 import java.io.*;
 import java.util.*;
-import java.lang.reflect.*;
 
 import java.security.KeyStore;
 import java.security.KeyStoreException;
--- a/test/sun/security/pkcs11/Provider/ConfigQuotedString.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/Provider/ConfigQuotedString.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,6 @@
 
 import java.io.*;
 import java.util.*;
-import java.lang.reflect.*;
 import java.security.*;
 import javax.security.auth.callback.*;
 
--- a/test/sun/security/pkcs11/Provider/Login.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/Provider/Login.java	Thu May 28 16:51:18 2015 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,6 @@
 
 import java.io.*;
 import java.util.*;
-import java.lang.reflect.*;
 import java.security.*;
 import javax.security.auth.callback.*;
 
--- a/test/sun/security/pkcs11/ec/TestCurves.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/ec/TestCurves.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary Basic consistency test for all curves using ECDSA and ECDH
  * @author Andreas Sterbenz
  * @library ..
+ * @modules jdk.crypto.pkcs11/sun.security.pkcs11.wrapper
  * @compile -XDignore.symbol.file TestCurves.java
  * @run main TestCurves
  * @key randomness
--- a/test/sun/security/pkcs11/ec/TestECDH2.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/ec/TestECDH2.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,7 @@
  * example data in "Suite B Implementer's Guide to FIPS 186-3".
  * @library ..
  * @library ../../../../java/security/testlibrary
+ * @modules java.base/sun.security.util
  * @compile -XDignore.symbol.file TestECDH2.java
  * @run main TestECDH2
  */
--- a/test/sun/security/pkcs11/ec/TestECDSA2.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/ec/TestECDSA2.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,7 @@
  * example data in "Suite B Implementer's Guide to FIPS 186-3".
  * @library ..
  * @library ../../../../java/security/testlibrary
+ * @modules java.base/sun.security.util
  * @compile -XDignore.symbol.file TestECDSA2.java
  * @run main TestECDSA2
  */
--- a/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary Verify that all ciphersuites work in FIPS mode
  * @library ..
  * @author Andreas Sterbenz
+ * @modules java.base/com.sun.net.ssl.internal.ssl
  * @run main/manual ClientJSSEServerJSSE
  */
 
--- a/test/sun/security/pkcs11/fips/TrustManagerTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/fips/TrustManagerTest.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary Verify that the SunJSSE trustmanager works correctly in FIPS mode
  * @author Andreas Sterbenz
  * @library ..
+ * @modules java.base/com.sun.net.ssl.internal.ssl
  * @run main/othervm TrustManagerTest
  */
 
--- a/test/sun/security/pkcs11/tls/TestKeyMaterial.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/tls/TestKeyMaterial.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary Known-answer-test for TlsKeyMaterial generator
  * @author Andreas Sterbenz
  * @library ..
+ * @modules java.base/sun.security.internal.spec
  */
 
 import java.io.*;
--- a/test/sun/security/pkcs11/tls/TestMasterSecret.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/tls/TestMasterSecret.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,8 @@
  * @summary Known-answer-test for TlsMasterSecret generator
  * @author Andreas Sterbenz
  * @library ..
+ * @modules java.base/sun.security.internal.interfaces
+ *          java.base/sun.security.internal.spec
  */
 
 import java.io.*;
--- a/test/sun/security/pkcs11/tls/TestPRF.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/tls/TestPRF.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary Basic known-answer-test for TlsPrf
  * @author Andreas Sterbenz
  * @library ..
+ * @modules java.base/sun.security.internal.spec
  */
 
 import java.io.*;
--- a/test/sun/security/pkcs11/tls/TestPremaster.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs11/tls/TestPremaster.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary Basic tests for TlsRsaPremasterSecret generator
  * @author Andreas Sterbenz
  * @library ..
+ * @modules java.base/sun.security.internal.spec
  */
 
 import java.security.Security;
--- a/test/sun/security/pkcs12/PKCS12SameKeyId.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/pkcs12/PKCS12SameKeyId.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,10 @@
  * @test
  * @bug 6958026
  * @summary Problem with PKCS12 keystore
+ * @modules java.base/sun.security.pkcs
+ *          java.base/sun.security.tools.keytool
+ *          java.base/sun.security.util
+ *          java.base/sun.security.x509
  * @compile -XDignore.symbol.file PKCS12SameKeyId.java
  * @run main PKCS12SameKeyId
  */
--- a/test/sun/security/provider/MessageDigest/DigestKAT.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/MessageDigest/DigestKAT.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4819771 4834179 5008306 4963723
  * @summary Basic known-answer-test for all our MessageDigest algorithms
+ * @modules java.base/sun.security.provider
  * @author Andreas Sterbenz
  */
 
--- a/test/sun/security/provider/PolicyFile/Comparator.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/PolicyFile/Comparator.java	Thu May 28 16:51:18 2015 -0700
@@ -24,8 +24,9 @@
 /*
  * @test
  * @bug 5037004
+ * @summary Frivolous ClassCastExceptions thrown by SubjectCodeSource.implies
+ * @modules java.base/sun.security.provider
  * @run main/othervm Comparator
- * @summary Frivolous ClassCastExceptions thrown by SubjectCodeSource.implies
  *
  * Note:  if you want to see the java.security.debug output,
  *        you can not simply set the system property.
--- a/test/sun/security/provider/PolicyFile/TokenStore.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/PolicyFile/TokenStore.java	Thu May 28 16:51:18 2015 -0700
@@ -25,8 +25,7 @@
  * @test
  * @bug 4919147
  * @summary Support for token-based KeyStores
- *
- * TokenStore.keystore password is "TokenStore"
+ * @modules java.base/sun.security.provider
  */
 
 import java.io.*;
--- a/test/sun/security/provider/PolicyParser/BogusGrants.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/PolicyParser/BogusGrants.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @author Gary Ellison
  * @bug 4233900
  * @summary Catch anomalies in Policy parsing
+ * @modules java.base/sun.security.provider
  * @run main BogusGrants p001.policy p002.policy p003.policy p004.policy
  */
 
--- a/test/sun/security/provider/PolicyParser/EncodeURL.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/PolicyParser/EncodeURL.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 4797850
+ * @modules java.base/sun.security.provider
  * @summary Security policy file does not grok hash mark in pathnames
  */
 
--- a/test/sun/security/provider/PolicyParser/TokenStore.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/PolicyParser/TokenStore.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4919147
  * @summary Support for token-based KeyStores
+ * @modules java.base/sun.security.provider
  */
 
 import java.io.*;
--- a/test/sun/security/provider/X509Factory/BadPem.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/X509Factory/BadPem.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8074935
  * @summary jdk8 keytool doesn't validate pem files for RFC 1421 correctness, as jdk7 did
+ * @modules java.base/sun.security.provider
  */
 
 import java.io.ByteArrayOutputStream;
--- a/test/sun/security/provider/X509Factory/BigCRL.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/X509Factory/BigCRL.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 7099399
  * @summary cannot deal with CRL file larger than 16MB
+ * @modules java.base/sun.security.x509
  * @run main/othervm -Xshare:off -Xmx1024m BigCRL
  */
 
--- a/test/sun/security/provider/certpath/CertId/CheckCertId.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/certpath/CertId/CheckCertId.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 6355295
  * @summary Certificate validation using OCSP fails for a particular class of certificates
+ * @modules java.base/sun.security.provider.certpath
+ *          java.base/sun.security.x509
  */
 
 import java.io.*;
--- a/test/sun/security/provider/certpath/DisabledAlgorithms/CPBuilder.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/certpath/DisabledAlgorithms/CPBuilder.java	Thu May 28 16:51:18 2015 -0700
@@ -53,7 +53,6 @@
 import java.util.*;
 import java.security.Security;
 import java.security.cert.*;
-import sun.security.util.DerInputStream;
 
 public class CPBuilder {
 
--- a/test/sun/security/provider/certpath/DisabledAlgorithms/CPBuilderWithMD5.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/certpath/DisabledAlgorithms/CPBuilderWithMD5.java	Thu May 28 16:51:18 2015 -0700
@@ -58,7 +58,6 @@
 import java.util.*;
 import java.security.Security;
 import java.security.cert.*;
-import sun.security.util.DerInputStream;
 
 public class CPBuilderWithMD5 {
 
--- a/test/sun/security/provider/certpath/OCSP/OCSPSingleExtensions.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/certpath/OCSP/OCSPSingleExtensions.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 8074064
  * @summary OCSPResponse.SingleResponse objects do not parse singleExtensions
+ * @modules java.base/sun.security.x509
  * @run main/othervm sun.security.provider.certpath.OCSPSingleExtensions
  */
 
--- a/test/sun/security/provider/certpath/SunCertPathBuilderExceptionTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/certpath/SunCertPathBuilderExceptionTest.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 5032952
  * @summary non-transient non-serializable instance field in
     serializable class
+ * @modules java.base/sun.security.provider.certpath
  */
 
 import sun.security.provider.certpath.SunCertPathBuilderException;
--- a/test/sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6492692
  * @summary Some JCK test failed because of the compiler warnings changes
+ * @modules java.base/sun.security.provider.certpath
  */
 
 import java.security.cert.CertificateException;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/sun/security/rsa/SignatureOffsets.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SignatureException;
+
+/*
+ * @test
+ * @bug 8050374
+ * @key randomness
+ * @summary This test validates signature verification
+ *          Signature.verify(byte[], int, int). The test uses RandomFactory to
+ *          get random set of clear text data to sign. After the signature
+ *          generation, the test tries to verify signature with the above API
+ *          and passing in different signature offset (0, 33, 66, 99).
+ * @library /lib/testlibrary
+ * @compile ../../../java/security/Signature/Offsets.java
+ * @run main SignatureOffsets SunRsaSign MD2withRSA
+ * @run main SignatureOffsets SunRsaSign MD5withRSA
+ * @run main SignatureOffsets SunRsaSign SHA1withRSA
+ * @run main SignatureOffsets SunRsaSign SHA224withRSA
+ * @run main SignatureOffsets SunRsaSign SHA256withRSA
+ * @run main SignatureOffsets SunRsaSign SHA384withRSA
+ * @run main SignatureOffsets SunRsaSign SHA512withRSA
+ */
+public class SignatureOffsets {
+
+    public static void main(String[] args) throws NoSuchAlgorithmException,
+            InvalidKeyException, SignatureException {
+        Offsets.main(args);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/sun/security/rsa/SignedObjectChain.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8050374
+ * @compile ../../../java/security/SignedObject/Chain.java
+ * @summary Verify a chain of signed objects
+ */
+public class SignedObjectChain {
+
+    private static class Test extends Chain.Test {
+
+        public Test(Chain.SigAlg sigAlg) {
+            super(sigAlg, Chain.KeyAlg.RSA, Chain.Provider.SunRsaSign);
+        }
+    }
+
+    private static final Test[] tests = {
+        new Test(Chain.SigAlg.MD2withRSA),
+        new Test(Chain.SigAlg.MD5withRSA),
+        new Test(Chain.SigAlg.SHA1withRSA),
+        new Test(Chain.SigAlg.SHA224withRSA),
+        new Test(Chain.SigAlg.SHA256withRSA),
+        new Test(Chain.SigAlg.SHA384withRSA),
+        new Test(Chain.SigAlg.SHA512withRSA),
+    };
+
+    public static void main(String argv[]) {
+        boolean resutl = java.util.Arrays.stream(tests).allMatch(
+                (test) -> Chain.runTest(test));
+
+        if(resutl) {
+            System.out.println("All tests passed");
+        } else {
+            throw new RuntimeException("Some tests failed");
+        }
+    }
+}
--- a/test/sun/security/ssl/ClientHandshaker/LengthCheckTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/ssl/ClientHandshaker/LengthCheckTest.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 8044860
  * @summary Vectors and fixed length fields should be verified
  *          for allowed sizes.
+ * @modules java.base/sun.security.ssl
  * @run main/othervm LengthCheckTest
  * @key randomness
  */
--- a/test/sun/security/ssl/InputRecord/ClientHelloRead.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/ssl/InputRecord/ClientHelloRead.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4432868
  * @summary A client-hello message may not always be read correctly
+ * @modules java.base/sun.net.www
  * @run main/othervm ClientHelloRead
  *
  *     SunJSSE does not support dynamic system properties, no way to re-use
--- a/test/sun/security/ssl/ServerHandshaker/GetPeerHostClient.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/ssl/ServerHandshaker/GetPeerHostClient.java	Thu May 28 16:51:18 2015 -0700
@@ -31,7 +31,6 @@
 import java.net.*;
 import java.io.*;
 import javax.net.ssl.*;
-import com.sun.net.ssl.*;
 
 class GetPeerHostClient extends Thread
 {
--- a/test/sun/security/ssl/X509TrustManagerImpl/CheckNullEntity.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/ssl/X509TrustManagerImpl/CheckNullEntity.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary unspecified exceptions in X509TrustManager.checkClient[Server]Truste
 d
  * @author Xuelei Fan
+ * @modules java.base/com.sun.net.ssl.internal.ssl
  */
 
 import java.io.*;
--- a/test/sun/security/ssl/X509TrustManagerImpl/ClientServer.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/ssl/X509TrustManagerImpl/ClientServer.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4717766
  * @author Brad Wetmore
  * @summary 1.0.3 JsseX509TrustManager erroneously calls isClientTrusted()
+ * @modules java.base/com.sun.net.ssl
  * @run main/manual ClientServer
  */
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/sun/security/ssl/rsa/SignatureOffsets.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SignatureException;
+
+/*
+ * @test
+ * @bug 8050374
+ * @key randomness
+ * @summary This test validates signature verification
+ *          Signature.verify(byte[], int, int). The test uses RandomFactory to
+ *          get random set of clear text data to sign. After the signature
+ *          generation, the test tries to verify signature with the above API
+ *          and passing in different signature offset (0, 33, 66, 99).
+ * @library /lib/testlibrary
+ * @compile ../../../../java/security/Signature/Offsets.java
+ * @run main SignatureOffsets SunJSSE MD2withRSA
+ * @run main SignatureOffsets SunJSSE MD5withRSA
+ * @run main SignatureOffsets SunJSSE SHA1withRSA
+ * @run main SignatureOffsets SunJSSE MD5andSHA1withRSA
+ */
+public class SignatureOffsets {
+
+    public static void main(String[] args) throws NoSuchAlgorithmException,
+            InvalidKeyException, SignatureException {
+        Offsets.main(args);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/sun/security/ssl/rsa/SignedObjectChain.java	Thu May 28 16:51:18 2015 -0700
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8050374
+ * @compile ../../../../java/security/SignedObject/Chain.java
+ * @summary Verify a chain of signed objects
+ */
+public class SignedObjectChain {
+
+    private static class Test extends Chain.Test {
+
+        public Test(Chain.SigAlg sigAlg) {
+            super(sigAlg, Chain.KeyAlg.RSA, Chain.Provider.SunJSSE);
+        }
+    }
+
+    private static final Test[] tests = {
+        new Test(Chain.SigAlg.MD2withRSA),
+        new Test(Chain.SigAlg.MD5withRSA),
+        new Test(Chain.SigAlg.SHA1withRSA),
+        new Test(Chain.SigAlg.MD5andSHA1withRSA),
+    };
+
+    public static void main(String argv[]) {
+        boolean resutl = java.util.Arrays.stream(tests).allMatch(
+                (test) -> Chain.runTest(test));
+
+        if(resutl) {
+            System.out.println("All tests passed");
+        } else {
+            throw new RuntimeException("Some tests failed");
+        }
+    }
+}
--- a/test/sun/security/tools/jarsigner/CertChainUnclosed.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/tools/jarsigner/CertChainUnclosed.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 8027991
  * @summary InputStream should be closed in sun.security.tools.jarsigner.Main
+ * @modules java.base/sun.security.tools.keytool
+ *          jdk.jartool/sun.security.tools.jarsigner
  * @run main/othervm CertChainUnclosed
  */
 
--- a/test/sun/security/tools/jarsigner/DefaultSigalg.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/tools/jarsigner/DefaultSigalg.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,12 @@
  * @test
  * @bug 8057810
  * @summary New defaults for DSA keys in jarsigner and keytool
+ * @modules java.base/sun.security.pkcs
+ *          java.base/sun.security.tools.keytool
+ *          java.base/sun.security.util
+ *          java.base/sun.security.x509
+ *          jdk.jartool/sun.security.tools.jarsigner
+ *          jdk.jartool/sun.tools.jar
  */
 
 import sun.security.pkcs.PKCS7;
--- a/test/sun/security/tools/jarsigner/EntriesOrder.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/tools/jarsigner/EntriesOrder.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,9 @@
  * @bug 8031572
  * @summary jarsigner -verify exits with 0 when a jar file is not properly signed
  * @library /lib/testlibrary
+ * @modules java.base/sun.security.tools.keytool
+ *          jdk.jartool/sun.security.tools.jarsigner
+ *          jdk.jartool/sun.tools.jar
  * @build jdk.testlibrary.IOUtils
  * @run main EntriesOrder
  */
--- a/test/sun/security/tools/jarsigner/JarSigningNonAscii.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/tools/jarsigner/JarSigningNonAscii.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4924188
  * @summary sign a JAR file that has entry names with non-ASCII characters.
+ * @modules jdk.jartool/sun.security.tools.jarsigner
  */
 
 import sun.security.tools.*;
--- a/test/sun/security/tools/jarsigner/LargeJarEntry.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/tools/jarsigner/LargeJarEntry.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6405538 6474350
  * @summary Make sure jar files with large entries (more than max heap size)
  *    can be signed
+ * @modules jdk.jartool/sun.security.tools.jarsigner
  * @run main/othervm -Xmx8M LargeJarEntry
  * @author Sean Mullan
  */
--- a/test/sun/security/tools/jarsigner/TsacertOptionTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/tools/jarsigner/TsacertOptionTest.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,12 @@
  * @bug 8024302 8026037
  * @summary The test signs and verifies a jar file with -tsacert option
  * @library /lib/testlibrary
+ * @modules java.base/sun.misc
+ *          java.base/sun.security.pkcs
+ *          java.base/sun.security.timestamp
+ *          java.base/sun.security.util
+ *          java.base/sun.security.x509
+ *          java.management
  * @run main TsacertOptionTest
  */
 public class TsacertOptionTest {
--- a/test/sun/security/tools/keytool/CloseFile.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/tools/keytool/CloseFile.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6489721
  * @summary keytool has not closed several file streams
  * @author weijun.wang
+ * @modules java.base/sun.security.tools.keytool
  * @compile -XDignore.symbol.file CloseFile.java
  * @run main CloseFile
  *
--- a/test/sun/security/tools/keytool/NewSize7.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/tools/keytool/NewSize7.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6561126
  * @summary keytool should use larger default keysize for keypairs
+ * @modules java.base/sun.security.tools.keytool
  * @compile -XDignore.symbol.file NewSize7.java
  * @run main NewSize7
  */
--- a/test/sun/security/tools/keytool/StartDateTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/tools/keytool/StartDateTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6468285
  * @summary keytool ability to backdate self-signed certificates to compensate for clock skew
+ * @modules java.base/sun.security.tools.keytool
  * @compile -XDignore.symbol.file StartDateTest.java
  * @run main StartDateTest
  */
--- a/test/sun/security/tools/keytool/UnknownAndUnparseable.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/tools/keytool/UnknownAndUnparseable.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,9 @@
  * @test
  * @bug 7192202
  * @summary Make sure keytool prints both unknown and unparseable extensions
+ * @modules java.base/sun.security.tools.keytool
+ *          java.base/sun.security.util
+ *          java.base/sun.security.x509
  * @compile -XDignore.symbol.file UnknownAndUnparseable.java
  * @run main UnknownAndUnparseable
  */
--- a/test/sun/security/util/BitArray/NamedBitList.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/BitArray/NamedBitList.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @author Weijun Wang
  * @bug 4654195
  * @summary BIT STRING types with named bits must remove trailing 0 bits
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
  */
 
 import sun.security.util.BitArray;
--- a/test/sun/security/util/Debug/MultiOptions.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/Debug/MultiOptions.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @bug 6466247
  * @summary java.security.debug permission=<classname> and codebase=<URL>
  *          options do not work
+ * @modules java.base/sun.security.util
  * @run main/othervm -Djava.security.debug="stacknothing--=-30logincontextacCess:stack-domain,combiner;access:fAilure-jarpermission=sun.dummy.DummyPermission;peRmiSsion=sun.Dummy.DummyPermission2=permission=sun.dummy.DummyPermission3:codEbAse=/dir1/DIR2/Dir3/File.java,codebase=http://www.sun.com/search?q=SunMicro,codEbAse=/dir1/DIR2/Dir3/File.java;coDebase=www.sun.com;codebase=file:///C:/temp/foo%20more/a.txt" MultiOptions
  */
 import sun.security.util.Debug;
--- a/test/sun/security/util/DerInputBuffer/BigInteger0.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/DerInputBuffer/BigInteger0.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4492053
  * @summary Verify invalid zero length Integer value is rejected
+ * @modules java.base/sun.security.util
  */
 
 import java.io.*;
--- a/test/sun/security/util/DerInputBuffer/DerInputBufferEqualsHashCode.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/DerInputBuffer/DerInputBufferEqualsHashCode.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @author Gary Ellison
  * @bug 4170635
  * @summary Verify equals()/hashCode() contract honored
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
  * @run main/othervm/policy=Allow.policy DerInputBufferEqualsHashCode
  */
 
--- a/test/sun/security/util/DerInputBuffer/PaddedBitString.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/DerInputBuffer/PaddedBitString.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4511556
  * @summary Verify BitString value containing padding bits is accepted.
+ * @modules java.base/sun.security.util
  */
 
 import java.io.*;
--- a/test/sun/security/util/DerInputBuffer/TimeParsing.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/DerInputBuffer/TimeParsing.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4558835 4915146
  * @summary Verify timezone offset and fractional seconds are correctly parsed
+ * @modules java.base/sun.security.util
  */
 
 import java.io.*;
--- a/test/sun/security/util/DerOutputStream/LocaleInTime.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/DerOutputStream/LocaleInTime.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6670889
  * @summary Keystore created under Hindi Locale causing ArrayIndexOutOfBoundsException
+ * @modules java.base/sun.security.util
  * @run main/othervm -Duser.language=hi -Duser.region=IN LocaleInTime
  */
 
--- a/test/sun/security/util/DerValue/BadValue.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/DerValue/BadValue.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 6864911
  * @summary ASN.1/DER input stream parser needs more work
+ * @modules java.base/sun.misc
+ *          java.base/sun.security.util
  */
 
 import java.io.*;
--- a/test/sun/security/util/DerValue/DerValueEqualsHashCode.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/DerValue/DerValueEqualsHashCode.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @author Gary Ellison
  * @bug 4170635
  * @summary Verify equals()/hashCode() contract honored
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
  */
 
 import java.io.*;
--- a/test/sun/security/util/DerValue/EmptyValue.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/DerValue/EmptyValue.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6804045
  * @summary DerValue does not accept empty OCTET STRING
+ * @modules java.base/sun.security.util
  */
 
 import sun.security.util.DerValue;
--- a/test/sun/security/util/DerValue/Indefinite.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/DerValue/Indefinite.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6731685
  * @summary CertificateFactory.generateCertificates throws IOException on PKCS7 cert chain
+ * @modules java.base/sun.security.util
  */
 
 import java.io.*;
--- a/test/sun/security/util/DerValue/NegInt.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/DerValue/NegInt.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6855671
  * @summary DerOutputStream encodes negative integer incorrectly
+ * @modules java.base/sun.security.util
  */
 import sun.security.util.DerOutputStream;
 
--- a/test/sun/security/util/HostnameMatcher/TestHostnameChecker.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/HostnameMatcher/TestHostnameChecker.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 4514108
  * @summary Verify host name matching behaves as defined in RFC2818.
+ * @modules java.base/sun.security.util
  */
 
 import java.io.*;
--- a/test/sun/security/util/Oid/OidFormat.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/Oid/OidFormat.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,8 @@
  * @bug 6418425
  * @bug 6418433
  * @summary ObjectIdentifier should reject 1.2.3.-4 and throw IOException on all format errors
+ * @modules java.base/sun.security.util
+ *          java.security.jgss
  */
 
 import java.io.IOException;
--- a/test/sun/security/util/Oid/S11N.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/Oid/S11N.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
 /*
  * @test
  * @bug 4811968 6908628 8006564
+ * @modules java.base/sun.misc
+ *          java.base/sun.security.util
  * @run main S11N check
  * @summary Serialization compatibility with old versions (and fixes)
  */
--- a/test/sun/security/util/PropertyExpander/ExpandAndEncode.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/PropertyExpander/ExpandAndEncode.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @author Valerie Peng
  * @bug 4716213
  * @bug 4797850
+ * @modules java.base/sun.security.util
  * @summary Verify that expand(String, boolean) does not encode if
  * the value is a valid URI with a scheme (it is already encoded),
  * i.e. avoid double encoding.
--- a/test/sun/security/util/Resources/NewNamesFormat.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/Resources/NewNamesFormat.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,10 @@
 /*
  * @test
  * @bug 6987827
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.tools.keytool
+ *          jdk.jartool/sun.security.tools.jarsigner
+ *          jdk.policytool/sun.security.tools.policytool
  * @summary security/util/Resources.java needs improvement
  */
 
--- a/test/sun/security/util/asn1StringTypes/StringTypes.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/util/asn1StringTypes/StringTypes.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4178326
  * @summary Make sure reading/writing of different DER encoded string
  * types works correctly.
+ * @modules java.base/sun.security.util
  */
 
 import java.io.*;
--- a/test/sun/security/validator/ConstructorTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/validator/ConstructorTest.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6996377
  * @summary shrink duplicate code in the constructor of PKIXValidator
+ * @modules java.base/sun.security.validator
  */
 
 import java.io.ByteArrayInputStream;
--- a/test/sun/security/validator/EndEntityExtensionCheck.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/validator/EndEntityExtensionCheck.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 8076117
  * @summary EndEntityChecker should not process custom extensions
  *          after PKIX validation
+ * @modules java.base/sun.security.validator
  */
 
 import java.io.ByteArrayInputStream;
--- a/test/sun/security/x509/AVA/AVAEqualsHashCode.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/AVA/AVAEqualsHashCode.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @author Gary Ellison
  * @bug 4170635
  * @summary Verify equals()/hashCode() contract honored
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
  * @run main/othervm/policy=Allow.policy AVAEqualsHashCode
  */
 
--- a/test/sun/security/x509/AVA/BadName.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/AVA/BadName.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 4184274
  * @summary Make sure bad distinguished names (without keywords) don't
  * cause out-of-memory condition
+ * @modules java.base/sun.security.x509
  */
 import java.io.IOException;
 import sun.security.x509.X500Name;
--- a/test/sun/security/x509/AVA/DomainComponentEncoding.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/AVA/DomainComponentEncoding.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 6391482
  * @summary incorrect ASN1 DER encoding of DomainComponent AttributeValue
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
  */
 
 import javax.security.auth.x500.X500Principal;
--- a/test/sun/security/x509/AVA/EmailAddressEncoding.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/AVA/EmailAddressEncoding.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 4702543
  * @summary  incorrect ASN1 DER encoding of EmailAddress Attribute
+ * @modules java.base/sun.security.pkcs
+ *          java.base/sun.security.util
  */
 
 import java.io.*;
--- a/test/sun/security/x509/AlgorithmId/AlgorithmIdEqualsHashCode.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/AlgorithmId/AlgorithmIdEqualsHashCode.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @author Gary Ellison
  * @bug 4170635
  * @summary Verify equals()/hashCode() contract honored
+ * @modules java.base/sun.security.x509
  */
 
 import java.io.*;
--- a/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 4162868
+ * @modules java.base/sun.security.x509
  * @run main/othervm ExtensibleAlgorithmId
  * @summary Algorithm Name-to-OID mapping needs to be made extensible.
  */
--- a/test/sun/security/x509/AlgorithmId/NonStandardNames.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/AlgorithmId/NonStandardNames.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,10 @@
  * @test
  * @bug 7180907
  * @summary Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes
+ * @modules java.base/sun.security.pkcs
+ *          java.base/sun.security.tools.keytool
+ *          java.base/sun.security.util
+ *          java.base/sun.security.x509
  * @compile -XDignore.symbol.file NonStandardNames.java
  * @run main NonStandardNames
  */
--- a/test/sun/security/x509/AlgorithmId/SHA256withECDSA.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/AlgorithmId/SHA256withECDSA.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @bug 6871847
  * @summary AlgorithmId.get("SHA256withECDSA") not available
+ * @modules java.base/sun.security.x509
  */
 
 import sun.security.x509.*;
--- a/test/sun/security/x509/AlgorithmId/TurkishRegion.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/AlgorithmId/TurkishRegion.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @bug 6867345
  * @summary Turkish regional options cause NPE in
  *     sun.security.x509.AlgorithmId.algOID
+ * @modules java.base/sun.security.x509
  * @run main/othervm -Duser.language=tr -Duser.region=TR TurkishRegion
  * @author Xuelei Fan
  */
--- a/test/sun/security/x509/Extensions/BCNull.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/Extensions/BCNull.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @test
  * @summary BasicConstraintsExtension does not encode when (ca==false && pathLen<0)
  * @bug 6803376
+ * @modules java.base/sun.security.x509
  */
 
 import sun.security.x509.BasicConstraintsExtension;
--- a/test/sun/security/x509/Extensions/DefaultCriticality.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/Extensions/DefaultCriticality.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  * @summary Change default criticality of policy mappings and policy constraints
             certificate extensions
  * @bug 8059916
+ * @modules java.base/sun.security.x509
  */
 
 import sun.security.x509.PolicyConstraintsExtension;
--- a/test/sun/security/x509/GeneralName/Encode.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/GeneralName/Encode.java	Thu May 28 16:51:18 2015 -0700
@@ -30,6 +30,8 @@
  * @bug 4716972
  * @summary Check that GeneralName.encode() encodes an X500Name with
  *      an explicit tag
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
  */
 public class Encode {
 
--- a/test/sun/security/x509/URIName/Parse.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/URIName/Parse.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @bug 8005389
  * @summary CRL Distribution Point URIs with spaces or backslashes should
  *          not be parseable
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
  */
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
--- a/test/sun/security/x509/X500Name/AllAttribs.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/X500Name/AllAttribs.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 4244051
  * @summary Make sure all PKIX-required X.520 name attribs are supported
+ * @modules java.base/sun.security.x509
  */
 
 import sun.security.x509.*;
--- a/test/sun/security/x509/X500Name/DerValueConstructor.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/X500Name/DerValueConstructor.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,8 @@
 /* @test
  * @bug 4228833
  * @summary Make sure constructor that takes DerValue argument works
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
  */
 
 import sun.security.util.*;
--- a/test/sun/security/x509/X500Name/EmailKeyword.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/X500Name/EmailKeyword.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,7 @@
  * @bug 4531319
  * @summary Make sure AVA with EMAIL or EMAILADDRESS keyword is recognized
  *    in DEFAULT format
+ * @modules java.base/sun.security.x509
  */
 import sun.security.x509.X500Name;
 
--- a/test/sun/security/x509/X500Name/NullX500Name.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/X500Name/NullX500Name.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,9 @@
 /* @test
  * @bug 4118818
  * @summary allow null X.500 Names
+ * @modules java.base/sun.misc
+ *          java.base/sun.security.util
+ *          java.base/sun.security.x509
  */
 
 import java.util.Arrays;
--- a/test/sun/security/x509/X500Name/RDNwithMultipleAVAs.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/X500Name/RDNwithMultipleAVAs.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /* @test
  * @bug 4197911
  * @summary Make sure RDN with multiple AVAs can be parsed.
+ * @modules java.base/sun.security.x509
  */
 
 import java.io.*;
--- a/test/sun/security/x509/X509CRLImpl/OrderAndDup.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/X509CRLImpl/OrderAndDup.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 7143872
  * @summary Improve certificate extension processing
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
  */
 import java.io.ByteArrayInputStream;
 import java.math.BigInteger;
--- a/test/sun/security/x509/equalNames/AltNamesEqualsTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/security/x509/equalNames/AltNamesEqualsTest.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,8 @@
  * @summary Make sure names that are equal are treated as such.
  * @bug 4273559
  * @author Yassir Elley
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
  */
 
 import sun.security.x509.*;
--- a/test/sun/tools/java/CFCTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/tools/java/CFCTest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,7 +24,9 @@
 /*
  * @test
  * @bug 8011805
- * @summary Update sun.tools.java class file reading/writing support to include the new constant pool entries (including invokedynamic)
+ * @modules jdk.rmic/sun.tools.java jdk.rmic/sun.rmi.rmic
+ * @summary Update sun.tools.java class file reading/writing support to include
+ *   the new constant pool entries (including invokedynamic)
  */
 
 import java.io.DataInputStream;
Binary file test/sun/tools/jhat/hprof.bin has changed
Binary file test/sun/tools/jhat/jmap.bin has changed
Binary file test/sun/tools/jhat/minimal.bin has changed
--- a/test/sun/tools/jmap/BasicJMapTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/tools/jmap/BasicJMapTest.java	Thu May 28 16:51:18 2015 -0700
@@ -44,7 +44,7 @@
  * @build jdk.test.lib.hprof.module.*
  * @build jdk.test.lib.hprof.parser.*
  * @build jdk.test.lib.hprof.utils.*
- * @run main BasicJMapTest
+ * @run main/timeout=240 BasicJMapTest
  */
 public class BasicJMapTest {
 
--- a/test/sun/tools/native2ascii/A2N_4630463	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF
--- a/test/sun/tools/native2ascii/A2N_4630463.expected	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--- a/test/sun/tools/native2ascii/A2N_4630971	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-#input test file 4630971 for bug native2ascii -reverse 
-#occurence of a backslash character in last 5 chars
-#of input file should not hang native2ascii -reverse
-Hello world\\\\\
--- a/test/sun/tools/native2ascii/A2N_4701617	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-\uFF61\uFF62\uFF63\uFF64\uFF65\uFF66
-\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C
-\uFF6D\uFF6E\uFF6F\uFF70\uFF71\uFF72
-\uFF73\uFF74\uFF75\uFF76\uFF77\uFF78
-\uFF79\uFF7A\uFF7B\uFF7C\uFF7D\uFF7E
-\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84
-\uFF85\uFF86\uFF87\uFF88\uFF89\uFF8A
-\uFF8B\uFF8C\uFF8D\uFF8E\uFF8F\uFF90
-\uFF91\uFF92\uFF93\uFF94\uFF95\uFF96
-\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C
-\uFF9D\uFF9E\uFF9F
--- a/test/sun/tools/native2ascii/A2N_4701617.expected	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-¡¢£¤¥¦
-§¨©ª«¬
-­®¯°±²
-³´µ¶·¸
-¹º»¼½¾
-¿ÀÁÂÃÄ
-ÅÆÇÈÉÊ
-ËÌÍÎÏÐ
-ÑÒÓÔÕÖ
-×ØÙÚÛÜ
-ÝÞß
--- a/test/sun/tools/native2ascii/A2N_6247817	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-\user
--- a/test/sun/tools/native2ascii/N2A_4636448	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--- a/test/sun/tools/native2ascii/N2A_4636448.expected	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d7\u00d8\u00d9\u00da\u00db\u00dc\u00dd\u00de\u00df\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa\u00fb\u00fc\u00fd\u00fe\u00ff
--- a/test/sun/tools/native2ascii/Native2AsciiTests.sh	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-#! /bin/sh -e
-
-#
-# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
-# 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 4630463 4630971 4636448 4701617 4721296 4710890 6247817 7021987 8067964
-# @summary Tests miscellaneous native2ascii bugfixes and regressions
-
-
-if [ "${TESTSRC}" = "" ]; then TESTSRC=.; fi
-if [ "${TESTJAVA}" = "" ]; then TESTJAVA=$1; shift; fi
-
-case `uname -s` in
-  Windows* | CYGWIN*) OS=Windows;;
-  SunOS|Linux) OS=Unix;;
-esac
-
-N2A=$TESTJAVA/bin/native2ascii
-
-check() {
-  bug=$1; shift
-  expected=$1; shift
-  out=$1; shift
-
-  # Strip carriage returns from output when comparing with n2a test output
-  # on win32 systems
-  if [ ${OS} = Windows ]; then
-     sed -e 's@\\r@@g' $out >$out.1
-     sed -e 's@\\r@@g' $expected >$out.expected
-  else
-     cp $out $out.1
-     cp $expected $out.expected
-  fi
-  if (set -x; diff -c $out.expected $out.1); then
-    echo "$bug passed"
-  else
-    echo "$bug failed"
-    exit 1
-  fi
-}
-
-# Check that native2ascii -reverse with an ISO-8859-1 encoded file works
-# as documented. 4630463 fixes a bug in the ISO-8859-1 encoder which
-# prevented encoding of valid ISO-8859-1 chars > 0x7f
-
-rm -f x.*
-$N2A -reverse -encoding ISO-8859-1 $TESTSRC/A2N_4630463 x.out
-check 4630463 $TESTSRC/A2N_4630463.expected x.out
-
-# Take file encoded in ISO-8859-1 with range of chars ,  0x7f < c < 0xff
-# invoke native2ascii with input filename and output filename identical
-# Ensure that output file is as expected by comparing to expected output.
-# 4636448 Fixed bug whereby output file was clobbered if infile and outfile
-# referred to same filename.  This bug only applies to Solaris/Linux, since on
-# Windows you can't write to a file that's open for reading.
-
-if [ $OS = Unix ]; then
-  rm -f x.*
-  cp $TESTSRC/N2A_4636448 x.in
-  chmod +w x.in
-  ls -l x.in
-  if $N2A -encoding ISO-8859-1 x.in x.in; then
-    check 4636448 $TESTSRC/N2A_4636448.expected x.in
-  fi
-fi
-
-# Ensure that files containing backslashes adjacent to EOF don't
-# hang native2ascii -reverse
-
-rm -f x.*
-$N2A -reverse -encoding ISO-8859-1 $TESTSRC/A2N_4630971 x.out
-check 4630971 $TESTSRC/A2N_4630971 x.out
-
-# Check reverse (char -> native) encoding of Japanese Halfwidth
-# Katakana characters for MS932 (default WinNT Japanese encoding)
-# Regression test for bugID 4701617
-
-rm -f x.*
-$N2A -reverse -encoding MS932 $TESTSRC/A2N_4701617 x.out
-check 4701617 $TESTSRC/A2N_4701617.expected x.out
-
-# Check that the inputfile appears in the error message when not found
-
-badin="DoesNotExist"
-$N2A $badin x.out | grep "$badin" > /dev/null
-if [ $? != 0 ]; then
-    echo "\"$badin\" expected to appear in error message"
-    exit 1
-fi
-
-# for win32 only ensure when output file pre-exists that
-# native2ascii tool will simply overwrite with the expected
-# output file (fixed bugID 4710890)
-
-if [ OS = Windows ]; then
-   rm -f x.*
-   cp $TESTSRC/test3 x.in
-   chmod a+x x.in
-   ls -l x.in
-   touch x.out
-   $N2A -encoding ISO-8859-1 x.in x.out
-   check 4710890 $TESTSRC/test3 x.out
-fi
-
-rm -rf x.*
-$N2A -reverse $TESTSRC/A2N_6247817 x.out
-check 4701617 $TESTSRC/A2N_6247817 x.out
-
--- a/test/sun/tools/native2ascii/NativeErrors.java	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
- * Copyright (c) 1998, 1999, 2014 Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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 4136352
- * @library /lib/testlibrary
- * @summary Test Native2ASCII error messages
- *
- */
-
-import java.io.File;
-import java.util.ResourceBundle;
-import java.util.MissingResourceException;
-import jdk.testlibrary.OutputAnalyzer;
-import jdk.testlibrary.JDKToolLauncher;
-import jdk.testlibrary.ProcessTools;
-
-public class NativeErrors {
-
-    private static ResourceBundle rsrc;
-
-    static {
-        try {
-            rsrc = ResourceBundle.getBundle(
-                     "sun.tools.native2ascii.resources.MsgNative2ascii");
-        } catch (MissingResourceException e) {
-            throw new Error("Missing message file.");
-        }
-    }
-
-    public static void main(String args[]) throws Throwable {
-        // Execute command in another vm. Verify stdout for expected err msg.
-
-        // Test with no input file given.
-        checkResult(executeCmd("-encoding"), "err.bad.arg");
-
-        File f0 = new File(System.getProperty("test.src", "."), "test123");
-        String path0 = f0.getPath();
-        if ( f0.exists() ) {
-            throw new Error("Input file should not exist: " + path0);
-        }
-        checkResult(executeCmd(path0), "err.cannot.read");
-
-        File f1 = new File(System.getProperty("test.src", "."), "test1");
-        File f2 = File.createTempFile("test2", ".tmp");
-        String path1 = f1.getPath();
-        String path2 = f2.getPath();
-        if ( !f1.exists() ) {
-            throw new Error("Missing input file: " + path1);
-        }
-        if ( !f2.setWritable(false) ) {
-            throw new Error("Output file cannot be made read only: " + path2);
-        }
-        f2.deleteOnExit();
-        if ( f2.canWrite() ) {
-            String msg = "Output file is still writable. " +
-                    "Probably because test is run as root. Read-only test skipped.";
-            System.out.println(msg);
-        } else {
-            // Test write to a read-only file.
-            checkResult(executeCmd(path1, path2), "err.cannot.write");
-        }
-    }
-
-    private static String executeCmd(String... toolArgs) throws Throwable {
-        JDKToolLauncher cmd = JDKToolLauncher.createUsingTestJDK("native2ascii");
-        for (String s : toolArgs) {
-            cmd.addToolArg(s);
-        }
-        OutputAnalyzer output = ProcessTools.executeProcess(cmd.getCommand());
-        if (output == null || output.getStdout() == null) {
-            throw new Exception("Output was null. Process did not finish correctly.");
-        }
-        if (output.getExitValue() == 0) {
-            throw new Exception("Process exit code was 0, but error was expected.");
-        }
-        return output.getStdout();
-    }
-
-    private static void checkResult(
-            String errorReceived, String errorKey) throws Exception {
-        String errorExpected = rsrc.getString(errorKey);
-        if (errorExpected == null) {
-            throw new Exception("No error message for key: " + errorKey);
-        }
-        // Remove template tag from error message.
-        errorExpected = errorExpected.replaceAll("\\{0\\}", "");
-
-        System.out.println("received: " + errorReceived);
-        System.out.println("expected: " + errorExpected);
-        if (errorReceived.indexOf(errorExpected) < 0) {
-            throw new RuntimeException("Native2ascii bad arg error broken.");
-        }
-    }
-
-}
--- a/test/sun/tools/native2ascii/Permission.java	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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 7177216
- * @summary resulting file of native2ascii should have normal permission
- */
-
-import java.io.*;
-import java.nio.file.*;
-import java.nio.file.attribute.*;
-import sun.tools.native2ascii.Main;
-
-public class Permission {
-
-    private static void cleanup(String... fnames) throws Throwable {
-        for (String fname : fnames) {
-            Files.deleteIfExists(Paths.get(fname));
-        }
-    }
-
-    public static void realMain(String[] args) throws Throwable {
-        if (!System.getProperty("os.name").startsWith("Windows")) {
-            String src = "native2ascii_permtest_src";
-            String dst = "native2ascii_permtest_dst";
-
-            cleanup(src, dst);
-            try {
-                try (FileOutputStream fos = new FileOutputStream(src)) {
-                    fos.write('a'); fos.write('b'); fos.write('c');
-                }
-                String[] n2aArgs = new String[] {"-encoding", "utf8", src, dst};
-                if (!new Main().convert(n2aArgs)) {
-                    fail("n2a failed.");
-                }
-                equal(Files.getPosixFilePermissions(Paths.get(src)),
-                      Files.getPosixFilePermissions(Paths.get(dst)));
-                String[] a2nArgs = new String[] {"-reverse", "-encoding", "utf8", dst, src};
-                if (!new Main().convert(a2nArgs)) {
-                    fail("a2n failed.");
-                }
-                equal(Files.getPosixFilePermissions(Paths.get(src)),
-                      Files.getPosixFilePermissions(Paths.get(dst)));
-            } finally {
-                cleanup(src, dst);
-            }
-        }
-    }
-
-    //--------------------- Infrastructure ---------------------------
-    static volatile int passed = 0, failed = 0;
-    static void pass() {passed++;}
-    static void fail() {failed++; Thread.dumpStack();}
-    static void fail(String msg) {System.out.println(msg); fail();}
-    static void unexpected(Throwable t) {failed++; t.printStackTrace();}
-    static void check(boolean cond) {if (cond) pass(); else fail();}
-    static void equal(Object x, Object y) {
-        if (x == null ? y == null : x.equals(y)) pass();
-        else fail(x + " not equal to " + y);}
-    public static void main(String[] args) throws Throwable {
-        try {realMain(args);} catch (Throwable t) {unexpected(t);}
-        System.out.println("\nPassed = " + passed + " failed = " + failed);
-        if (failed > 0) throw new AssertionError("Some tests failed");}
-}
--- a/test/sun/tools/native2ascii/resources/ImmutableResourceTest.java	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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        6287579
- *  @summary    SubClasses of ListResourceBundle should fix getContents()
- *  @run main ImmutableResourceTest
- *
- *  @author Tim Bell
- *
- */
-import java.util.ResourceBundle;
-
-public class ImmutableResourceTest {
-
-    public static void main(String[] args) throws Exception {
-        /* Reach under the covers and get the message strings */
-        sun.tools.native2ascii.resources.MsgNative2ascii msgs =
-            new sun.tools.native2ascii.resources.MsgNative2ascii ();
-        Object [][] testData = msgs.getContents();
-
-        /* Shred our copy of the message strings */
-        for (int ii = 0; ii < testData.length; ii++) {
-            testData[ii][0] = "T6287579";
-            testData[ii][1] = "yyy";
-        }
-
-        /*
-         * Try to lookup the shredded key.
-         * If this is successful we have a problem.
-         */
-        String ss = null;
-        try {
-            ss = msgs.getString("T6287579");
-        } catch (java.util.MissingResourceException mre) {
-            /*
-             * Ignore the expected MissingResourceException since key
-             * "T6287579" is not in the canonical MsgNative2ascii.
-             */
-        }
-        if ("yyy".equals(ss)) {
-            throw new Exception ("SubClasses of ListResourceBundle should fix getContents()");
-        }
-        System.out.println("...Finished.");
-    }
-}
--- a/test/sun/tools/native2ascii/test1	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-This file exists as a readable placeholder for NativeErrors.java.
--- a/test/sun/tools/native2ascii/test3	Thu May 28 16:13:52 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-This file exists as a non-writable placeholder for Native2AsciiTests
--- a/test/sun/util/calendar/zi/TestZoneInfo310.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/util/calendar/zi/TestZoneInfo310.java	Thu May 28 16:51:18 2015 -0700
@@ -26,6 +26,7 @@
  *@bug 8007572 8008161
  *@summary Test whether the TimeZone generated from JSR310 tzdb is the same
  *as the one from the tz data from javazic
+ * @modules java.base/sun.util.calendar
  */
 
 import java.io.File;
--- a/test/sun/util/locale/provider/Bug8038436.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/util/locale/provider/Bug8038436.java	Thu May 28 16:51:18 2015 -0700
@@ -25,6 +25,8 @@
  * @test
  * @bug 8038436
  * @summary Test for changes in 8038436
+ * @modules java.base/sun.util.locale.provider
+ *          java.base/sun.util.spi
  * @compile -XDignore.symbol.file Bug8038436.java
  * @run main/othervm Bug8038436 -Djava.ext.dirs=foo security
  * @run main/othervm Bug8038436 -Djava.locale.providers=JRE availlocs
--- a/test/sun/util/logging/PlatformLoggerTest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/util/logging/PlatformLoggerTest.java	Thu May 28 16:51:18 2015 -0700
@@ -29,6 +29,7 @@
  *          operations.  othervm mode to make sure java.util.logging
  *          is not initialized.
  *
+ * @modules java.base/sun.util.logging
  * @compile -XDignore.symbol.file PlatformLoggerTest.java
  * @run main/othervm PlatformLoggerTest
  */
--- a/test/sun/util/logging/SourceClassName.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/sun/util/logging/SourceClassName.java	Thu May 28 16:51:18 2015 -0700
@@ -27,6 +27,7 @@
  * @summary Test the source class name and method output by the platform
  *          logger.
  *
+ * @modules java.base/sun.util.logging
  * @compile -XDignore.symbol.file SourceClassName.java
  * @run main/othervm SourceClassName
  */
--- a/test/tools/jar/ChangeDir.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/tools/jar/ChangeDir.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4806786 8023113
+ * @modules jdk.jartool/sun.tools.jar
  * @summary jar -C doesn't ignore multiple // in path
  */
 
--- a/test/tools/jar/JarBackSlash.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/tools/jar/JarBackSlash.java	Thu May 28 16:51:18 2015 -0700
@@ -28,6 +28,7 @@
 /*
  * @test
  * @bug 7201156
+ * @modules jdk.jartool/sun.tools.jar
  * @summary jar tool fails to convert file separation characters for list and extract
  * @author Sean Chou
  */
--- a/test/tools/jar/JarEntryTime.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/tools/jar/JarEntryTime.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4225317 6969651
+ * @modules jdk.jartool/sun.tools.jar
  * @summary Check extracted files have date as per those in the .jar file
  */
 
--- a/test/tools/jar/UpdateJar.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/tools/jar/UpdateJar.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 7175845
+ * @modules jdk.jartool/sun.tools.jar
  * @summary jar -uf should not change file permission
  */
 
--- a/test/tools/jar/UpdateManifest.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/tools/jar/UpdateManifest.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6434207 6442687 6984046
+ * @modules jdk.jartool/sun.tools.jar
  * @summary Ensure that jar ufm actually updates the
  * existing jar file's manifest with contents of the
  * manifest file.
--- a/test/tools/jar/index/MetaInf.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/tools/jar/index/MetaInf.java	Thu May 28 16:51:18 2015 -0700
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 4408526 6854795
+ * @modules jdk.jartool/sun.tools.jar
  * @summary Index the non-meta files in META-INF, such as META-INF/services.
  */
 
--- a/test/tools/launcher/VersionCheck.java	Thu May 28 16:13:52 2015 -0700
+++ b/test/tools/launcher/VersionCheck.java	Thu May 28 16:51:18 2015 -0700
@@ -93,7 +93,6 @@
         "kinit",
         "klist",
         "ktab",
-        "native2ascii",
         "orbd",
         "pack200",
         "packager",