--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/src/classes/build/tools/jigsaw/ListPackages.java Thu Jun 01 18:48:56 2017 +0000
@@ -0,0 +1,203 @@
+/*
+ * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. 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 build.tools.jigsaw;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.io.UncheckedIOException;
+import java.lang.module.ModuleDescriptor;
+import java.lang.module.ModuleFinder;
+import java.lang.module.ModuleReference;
+import java.net.URI;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * Run this tool to generate the JDK internal APIs in the previous releases
+ * including platform-specific internal APIs.
+ */
+public class ListPackages {
+ // Filter non-interesting JAR files
+ private final static List<String> excludes = Arrays.asList(
+ "deploy.jar",
+ "javaws.jar",
+ "plugin.jar",
+ "cldrdata.jar",
+ "localedata.jar"
+ );
+ private static void usage() {
+ System.out.println("ListPackages [-o <outfile>] [-jdkinternals] <javaHome> [<javaHome>]*");
+ }
+
+ private static final Set<String> EXPORTED_PACKAGES = new HashSet<>();
+
+ public static void main(String... args) throws IOException {
+ List<Path> paths = new ArrayList<>();
+ Path outFile = null;
+ boolean jdkinternals = false;
+ int i=0;
+ while (i < args.length) {
+ String arg = args[i++];
+ if (arg.equals("-o")) {
+ outFile = Paths.get(args[i++]);
+ } else if (arg.equals("-jdkinternals")) {
+ jdkinternals = true;
+ } else {
+ Path p = Paths.get(arg);
+ if (Files.notExists(p))
+ throw new IllegalArgumentException(p + " not exist");
+ paths.add(p);
+ }
+ }
+ if (paths.isEmpty()) {
+ usage();
+ System.exit(1);
+ }
+
+ // Get the exported APIs from the current JDK releases
+ Path javaHome = Paths.get(System.getProperty("java.home"));
+ ModuleFinder.ofSystem().findAll()
+ .stream()
+ .map(ModuleReference::descriptor)
+ .filter(md -> !md.name().equals("jdk.unsupported"))
+ .flatMap(md -> md.exports().stream())
+ .filter(exp -> !exp.isQualified())
+ .map(ModuleDescriptor.Exports::source)
+ .forEach(EXPORTED_PACKAGES::add);
+
+ ListPackages listPackages = new ListPackages(paths);
+ Stream<String> pkgs = listPackages.packages().stream();
+ if (jdkinternals) {
+ pkgs = pkgs.filter(pn -> !EXPORTED_PACKAGES.contains(pn));
+ }
+ if (outFile != null) {
+ try (OutputStream out = Files.newOutputStream(outFile);
+ PrintStream pw = new PrintStream(out)) {
+ write(pw, pkgs);
+ }
+ } else {
+ write(System.out, pkgs);
+ }
+ }
+
+
+ private static void write(PrintStream pw, Stream<String> packages) {
+ pw.println("# This file is auto-generated by ListPackages tool on " +
+ LocalDateTime.now().toString());
+ packages.sorted().forEach(pw::println);
+ }
+
+ private final Set<String> packages = new HashSet<>();
+ ListPackages(List<Path> dirs) throws IOException {
+ for (Path p : dirs) {
+ packages.addAll(list(p));
+ }
+ }
+
+ Set<String> packages() {
+ return packages;
+ }
+
+ private Set<String> list(Path javaHome) throws IOException {
+ Path jrt = javaHome.resolve("lib").resolve("modules");
+ Path jre = javaHome.resolve("jre");
+
+ if (Files.exists(jrt)) {
+ return listModularRuntime(javaHome);
+ } else if (Files.exists(jre.resolve("lib").resolve("rt.jar"))) {
+ return listLegacyRuntime(javaHome);
+ }
+ throw new IllegalArgumentException("invalid " + javaHome);
+ }
+
+ private Set<String> listModularRuntime(Path javaHome) throws IOException {
+ Map<String, String> env = new HashMap<>();
+ env.put("java.home", javaHome.toString());
+ FileSystem fs = FileSystems.newFileSystem(URI.create("jrt:/"), env);
+ Path root = fs.getPath("packages");
+ return Files.walk(root, 1)
+ .map(Path::getFileName)
+ .map(Path::toString)
+ .collect(Collectors.toSet());
+ }
+
+ private Set<String> listLegacyRuntime(Path javaHome) throws IOException {
+ List<Path> dirs = new ArrayList<>();
+ Path jre = javaHome.resolve("jre");
+ Path lib = javaHome.resolve("lib");
+
+ dirs.add(jre.resolve("lib"));
+ dirs.add(jre.resolve("lib").resolve("ext"));
+ dirs.add(lib.resolve("tools.jar"));
+ dirs.add(lib.resolve("jconsole.jar"));
+ Set<String> packages = new HashSet<>();
+ for (Path d : dirs) {
+ Files.find(d, 1, (Path p, BasicFileAttributes attr)
+ -> p.getFileName().toString().endsWith(".jar") &&
+ !excludes.contains(p.getFileName().toString()))
+ .map(ListPackages::walkJarFile)
+ .forEach(packages::addAll);
+ }
+ return packages;
+ }
+
+ static Set<String> walkJarFile(Path jarfile) {
+ try (JarFile jf = new JarFile(jarfile.toFile())) {
+ return jf.stream()
+ .map(JarEntry::getName)
+ .filter(n -> n.endsWith(".class"))
+ .map(ListPackages::toPackage)
+ .collect(Collectors.toSet());
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ }
+
+ static String toPackage(String name) {
+ int i = name.lastIndexOf('/');
+ if (i < 0) {
+ System.err.format("Warning: unnamed package %s%n", name);
+ }
+ return i >= 0 ? name.substring(0, i).replace("/", ".") : "";
+ }
+}
--- a/jdk/src/java.base/share/classes/java/lang/RuntimePermission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/RuntimePermission.java Thu Jun 01 18:48:56 2017 +0000
@@ -403,6 +403,7 @@
*
* @author Marianne Mueller
* @author Roland Schemers
+ * @since 1.2
*/
public final class RuntimePermission extends BasicPermission {
--- a/jdk/src/java.base/share/classes/java/lang/invoke/package-info.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/package-info.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,13 +44,13 @@
* </li>
* </ul>
*
- * <h1><a name="jvm_mods"></a>Summary of relevant Java Virtual Machine changes</h1>
+ * <h1><a id="jvm_mods"></a>Summary of relevant Java Virtual Machine changes</h1>
* The following low-level information summarizes relevant parts of the
* Java Virtual Machine specification. For full details, please see the
* current version of that specification.
*
* Each occurrence of an {@code invokedynamic} instruction is called a <em>dynamic call site</em>.
- * <h2><a name="indyinsn"></a>{@code invokedynamic} instructions</h2>
+ * <h2><a id="indyinsn"></a>{@code invokedynamic} instructions</h2>
* A dynamic call site is originally in an unlinked state. In this state, there is
* no target method for the call site to invoke.
* <p>
@@ -77,7 +77,8 @@
* <p>
* The bootstrap method is invoked on at least three values:
* <ul>
- * <li>a {@code MethodHandles.Lookup}, a lookup object on the <em>caller class</em> in which dynamic call site occurs </li>
+ * <li>a {@code MethodHandles.Lookup}, a lookup object on the <em>caller class</em>
+ * in which dynamic call site occurs </li>
* <li>a {@code String}, the method name mentioned in the call site </li>
* <li>a {@code MethodType}, the resolved type descriptor of the call </li>
* <li>optionally, between 1 and 251 additional static arguments taken from the constant pool </li>
@@ -165,17 +166,27 @@
* Given these rules, here are examples of legal bootstrap method declarations,
* given various numbers {@code N} of extra arguments.
* The first rows (marked {@code *}) will work for any number of extra arguments.
- * <table border=1 cellpadding=5 summary="Static argument types">
- * <tr><th>N</th><th>sample bootstrap method</th></tr>
- * <tr><td>*</td><td><code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object... args)</code></td></tr>
- * <tr><td>*</td><td><code>CallSite bootstrap(Object... args)</code></td></tr>
- * <tr><td>*</td><td><code>CallSite bootstrap(Object caller, Object... nameAndTypeWithArgs)</code></td></tr>
- * <tr><td>0</td><td><code>CallSite bootstrap(Lookup caller, String name, MethodType type)</code></td></tr>
- * <tr><td>0</td><td><code>CallSite bootstrap(Lookup caller, Object... nameAndType)</code></td></tr>
- * <tr><td>1</td><td><code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object arg)</code></td></tr>
- * <tr><td>2</td><td><code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object... args)</code></td></tr>
- * <tr><td>2</td><td><code>CallSite bootstrap(Lookup caller, String name, MethodType type, String... args)</code></td></tr>
- * <tr><td>2</td><td><code>CallSite bootstrap(Lookup caller, String name, MethodType type, String x, int y)</code></td></tr>
+ * <table class="plain">
+ * <caption style="display:none">Static argument types</caption>
+ * <tr><th>N</th><th>Sample bootstrap method</th></tr>
+ * <tr><td>*</td>
+ * <td><code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object... args)</code></td></tr>
+ * <tr><td>*</td><td>
+ * <code>CallSite bootstrap(Object... args)</code></td></tr>
+ * <tr><td>*</td><td>
+ * <code>CallSite bootstrap(Object caller, Object... nameAndTypeWithArgs)</code></td></tr>
+ * <tr><td>0</td><td>
+ * <code>CallSite bootstrap(Lookup caller, String name, MethodType type)</code></td></tr>
+ * <tr><td>0</td><td>
+ * <code>CallSite bootstrap(Lookup caller, Object... nameAndType)</code></td></tr>
+ * <tr><td>1</td><td>
+ * <code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object arg)</code></td></tr>
+ * <tr><td>2</td><td>
+ * <code>CallSite bootstrap(Lookup caller, String name, MethodType type, Object... args)</code></td></tr>
+ * <tr><td>2</td><td>
+ * <code>CallSite bootstrap(Lookup caller, String name, MethodType type, String... args)</code></td></tr>
+ * <tr><td>2</td>
+ * <td><code>CallSite bootstrap(Lookup caller, String name, MethodType type, String x, int y)</code></td></tr>
* </table>
* The last example assumes that the extra arguments are of type
* {@code CONSTANT_String} and {@code CONSTANT_Integer}, respectively.
--- a/jdk/src/java.base/share/classes/java/lang/module/package-info.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/module/package-info.java Thu Jun 01 18:48:56 2017 +0000
@@ -27,7 +27,7 @@
* Classes to support module descriptors and creating configurations of modules
* by means of resolution and service binding.
*
- * <h2><a name="resolution">Resolution</a></h2>
+ * <h2><a id="resolution">Resolution</a></h2>
*
* <p> Resolution is the process of computing the transitive closure of a set
* of root modules over a set of observable modules by resolving the
@@ -97,7 +97,7 @@
* resolved so that it reads all other modules in the resulting configuration and
* all modules in parent configurations. </p>
*
- * <h2><a name="servicebinding">Service binding</a></h2>
+ * <h2><a id="servicebinding">Service binding</a></h2>
*
* <p> Service binding is the process of augmenting a graph of resolved modules
* from the set of observable modules induced by the service-use dependence
--- a/jdk/src/java.base/share/classes/java/lang/package-info.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/package-info.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -57,7 +57,7 @@
* by the {@code throw} statement. Subclasses of {@code Throwable}
* represent errors and exceptions.
*
- * <a name="charenc"></a>
+ * <a id="charenc"></a>
* <h3>Character Encodings</h3>
*
* The specification of the {@link java.nio.charset.Charset
--- a/jdk/src/java.base/share/classes/java/lang/reflect/Array.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Array.java Thu Jun 01 18:48:56 2017 +0000
@@ -36,6 +36,7 @@
* conversion would occur.
*
* @author Nakul Saraiya
+ * @since 1.1
*/
public final
class Array {
--- a/jdk/src/java.base/share/classes/java/lang/reflect/Constructor.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Constructor.java Thu Jun 01 18:48:56 2017 +0000
@@ -59,6 +59,7 @@
*
* @author Kenneth Russell
* @author Nakul Saraiya
+ * @since 1.1
*/
public final class Constructor<T> extends Executable {
private Class<T> clazz;
--- a/jdk/src/java.base/share/classes/java/lang/reflect/Field.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Field.java Thu Jun 01 18:48:56 2017 +0000
@@ -60,6 +60,7 @@
*
* @author Kenneth Russell
* @author Nakul Saraiya
+ * @since 1.1
*/
public final
class Field extends AccessibleObject implements Member {
--- a/jdk/src/java.base/share/classes/java/lang/reflect/InvocationTargetException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/InvocationTargetException.java Thu Jun 01 18:48:56 2017 +0000
@@ -38,6 +38,7 @@
*
* @see Method
* @see Constructor
+ * @since 1.1
*/
public class InvocationTargetException extends ReflectiveOperationException {
/**
--- a/jdk/src/java.base/share/classes/java/lang/reflect/Member.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Member.java Thu Jun 01 18:48:56 2017 +0000
@@ -35,6 +35,7 @@
* @see Constructor
*
* @author Nakul Saraiya
+ * @since 1.1
*/
public
interface Member {
--- a/jdk/src/java.base/share/classes/java/lang/reflect/Method.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Method.java Thu Jun 01 18:48:56 2017 +0000
@@ -63,6 +63,7 @@
*
* @author Kenneth Russell
* @author Nakul Saraiya
+ * @since 1.1
*/
public final class Method extends Executable {
private Class<?> clazz;
--- a/jdk/src/java.base/share/classes/java/lang/reflect/Modifier.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Modifier.java Thu Jun 01 18:48:56 2017 +0000
@@ -43,6 +43,7 @@
*
* @author Nakul Saraiya
* @author Kenneth Russell
+ * @since 1.1
*/
public class Modifier {
--- a/jdk/src/java.base/share/classes/java/math/BigDecimal.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/math/BigDecimal.java Thu Jun 01 18:48:56 2017 +0000
@@ -222,6 +222,7 @@
* @author Mike Cowlishaw
* @author Joseph D. Darcy
* @author Sergey V. Kuksenko
+ * @since 1.1
*/
public class BigDecimal extends Number implements Comparable<BigDecimal> {
/**
--- a/jdk/src/java.base/share/classes/java/net/InetAddress.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/net/InetAddress.java Thu Jun 01 18:48:56 2017 +0000
@@ -75,7 +75,7 @@
* <blockquote><table class="borderless">
* <caption style="display:none">Description of unicast and multicast address types</caption>
* <tbody>
- * <tr><th valign=top><i>unicast</i></th>
+ * <tr><th style="vertical-align:top"><i>unicast</i></th>
* <td>An identifier for a single interface. A packet sent to
* a unicast address is delivered to the interface identified by
* that address.
@@ -94,7 +94,7 @@
* IP address loops around and becomes IP input on the local
* host. This address is often used when testing a
* client.</td></tr>
- * <tr><th valign=top><i>multicast</i></th>
+ * <tr><th style="vertical-align:top"><i>multicast</i></th>
* <td>An identifier for a set of interfaces (typically belonging
* to different nodes). A packet sent to a multicast address is
* delivered to all interfaces identified by that address.</td></tr>
--- a/jdk/src/java.base/share/classes/java/net/NetPermission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/net/NetPermission.java Thu Jun 01 18:48:56 2017 +0000
@@ -167,6 +167,7 @@
*
* @author Marianne Mueller
* @author Roland Schemers
+ * @since 1.2
*/
public final class NetPermission extends BasicPermission {
--- a/jdk/src/java.base/share/classes/java/net/SocketOptions.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/net/SocketOptions.java Thu Jun 01 18:48:56 2017 +0000
@@ -40,6 +40,7 @@
* DatagramSocket and MulticastSocket.
*
* @author David Brown
+ * @since 1.1
*/
--- a/jdk/src/java.base/share/classes/java/net/SocketPermission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/net/SocketPermission.java Thu Jun 01 18:48:56 2017 +0000
@@ -142,6 +142,7 @@
*
* @author Marianne Mueller
* @author Roland Schemers
+ * @since 1.2
*
* @serial exclude
*/
--- a/jdk/src/java.base/share/classes/java/net/URI.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/net/URI.java Thu Jun 01 18:48:56 2017 +0000
@@ -253,32 +253,32 @@
* which are taken from that specification, are used below to describe these
* constraints:
*
- * <blockquote><table>
+ * <blockquote><table class="borderless">
* <caption style="display:none">Describes categories alpha,digit,alphanum,unreserved,punct,reserved,escaped,and other</caption>
* <tbody>
- * <tr><th valign=top><i>alpha</i></th>
+ * <tr><th style="vertical-align:top"><i>alpha</i></th>
* <td>The US-ASCII alphabetic characters,
* {@code 'A'} through {@code 'Z'}
* and {@code 'a'} through {@code 'z'}</td></tr>
- * <tr><th valign=top><i>digit</i></th>
+ * <tr><th style="vertical-align:top"><i>digit</i></th>
* <td>The US-ASCII decimal digit characters,
* {@code '0'} through {@code '9'}</td></tr>
- * <tr><th valign=top><i>alphanum</i></th>
+ * <tr><th style="vertical-align:top"><i>alphanum</i></th>
* <td>All <i>alpha</i> and <i>digit</i> characters</td></tr>
- * <tr><th valign=top><i>unreserved</i> </th>
+ * <tr><th style="vertical-align:top"><i>unreserved</i> </th>
* <td>All <i>alphanum</i> characters together with those in the string
* {@code "_-!.~'()*"}</td></tr>
- * <tr><th valign=top><i>punct</i></th>
+ * <tr><th style="vertical-align:top"><i>punct</i></th>
* <td>The characters in the string {@code ",;:$&+="}</td></tr>
- * <tr><th valign=top><i>reserved</i></th>
+ * <tr><th style="vertical-align:top"><i>reserved</i></th>
* <td>All <i>punct</i> characters together with those in the string
* {@code "?/[]@"}</td></tr>
- * <tr><th valign=top><i>escaped</i></th>
+ * <tr><th style="vertical-align:top"><i>escaped</i></th>
* <td>Escaped octets, that is, triplets consisting of the percent
* character ({@code '%'}) followed by two hexadecimal digits
* ({@code '0'}-{@code '9'}, {@code 'A'}-{@code 'F'}, and
* {@code 'a'}-{@code 'f'})</td></tr>
- * <tr><th valign=top><i>other</i></th>
+ * <tr><th style="vertical-align:top"><i>other</i></th>
* <td>The Unicode characters that are not in the US-ASCII character set,
* are not control characters (according to the {@link
* java.lang.Character#isISOControl(char) Character.isISOControl}
--- a/jdk/src/java.base/share/classes/java/net/doc-files/net-properties.html Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/net/doc-files/net-properties.html Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,6 @@
+<!DOCTYPE HTML>
<!--
- Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -22,15 +23,14 @@
or visit www.oracle.com if you need additional information or have any
questions.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
<TITLE>Networking Properties</TITLE>
</HEAD>
<BODY LANG="en-US" DIR="LTR">
-<H1 ALIGN=CENTER>Networking Properties</H1>
-<P ALIGN=LEFT>There are a few standard system properties used to
+<H1 style="text-align:center">Networking Properties</H1>
+<P>There are a few standard system properties used to
alter the mechanisms and behavior of the various classes of the
java.net package. Some are checked only once at startup of the VM,
and therefore are best set using the -D option of the java command,
@@ -39,7 +39,7 @@
The purpose of this document is to list
and detail all of these properties.</P>
<P>If there is no special note, a property value is checked every time it is used.</P>
-<a name="Ipv4IPv6"></a>
+<a id="Ipv4IPv6"></a>
<H2>IPv4 / IPv6</H2>
<UL>
<LI><P><B>java.net.preferIPv4Stack</B> (default: false)<BR>
@@ -62,7 +62,7 @@
returned by the operating system.</P>
</UL>
<P>Both of these properties are checked only once, at startup.</P>
-<a name="Proxies"></a>
+<a id="Proxies"></a>
<H2>Proxies</H2>
<P>A proxy server allows indirect connection to network services and
is used mainly for security (to get through firewalls) and
@@ -155,7 +155,7 @@
globally through their user interface). Note that this property is
checked only once at startup.</P>
</UL>
-<a name="MiscHTTP"></a>
+<a id="MiscHTTP"></a>
<H2>Misc HTTP properties</H2>
<UL>
<LI><P><B>http.agent</B> (default: “Java/<version>”)<BR>
@@ -214,7 +214,7 @@
</OL>
</UL>
<P>All these properties are checked only once at startup.</P>
-<a name="AddressCache"></a>
+<a id="AddressCache"></a>
<H2>Address Cache</H2>
<P>The java.net package, when doing name resolution, uses an address
cache for both security and performance reasons. Any address
--- a/jdk/src/java.base/share/classes/java/nio/channels/package-info.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/nio/channels/package-info.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,33 +28,46 @@
* performing I/O operations, such as files and sockets; defines selectors, for
* multiplexed, non-blocking I/O operations.
*
- * <a name="channels"></a>
+ * <a id="channels"></a>
*
- * <blockquote><table cellspacing=1 cellpadding=0 summary="Lists channels and their descriptions">
- * <tr><th align="left">Channels</th><th align="left">Description</th></tr>
- * <tr><td valign=top><i>{@link java.nio.channels.Channel}</i></td>
+ * <blockquote><table class="borderless">
+ * <caption style="display:none">Lists channels and their descriptions</caption>
+ * <tr><th style="text-align:left">Channels</th>
+ * <th style="text-align:left">Description</th></tr>
+ * <tr><td style="vertical-align:top"><i>{@link java.nio.channels.Channel}</i></td>
* <td>A nexus for I/O operations</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.channels.ReadableByteChannel}</i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.channels.ReadableByteChannel}</i></td>
* <td>Can read into a buffer</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.channels.ScatteringByteChannel} </i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.channels.ScatteringByteChannel} </i></td>
* <td>Can read into a sequence of buffers</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.channels.WritableByteChannel}</i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.channels.WritableByteChannel}</i></td>
* <td>Can write from a buffer</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.channels.GatheringByteChannel}</i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.channels.GatheringByteChannel}</i></td>
* <td>Can write from a sequence of buffers</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.channels.ByteChannel}</i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.channels.ByteChannel}</i></td>
* <td>Can read/write to/from a buffer</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.channels.SeekableByteChannel}</i></td>
- * <td>A {@code ByteChannel} connected to an entity that contains a variable-length sequence of bytes</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.channels.AsynchronousChannel}</i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.channels.SeekableByteChannel}</i></td>
+ * <td>A {@code ByteChannel} connected to an entity that contains a variable-length
+ * sequence of bytes</td></tr>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.channels.AsynchronousChannel}</i></td>
* <td>Supports asynchronous I/O operations.</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.channels.AsynchronousByteChannel}</i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.channels.AsynchronousByteChannel}</i></td>
* <td>Can read and write bytes asynchronously</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.channels.NetworkChannel}</i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.channels.NetworkChannel}</i></td>
* <td>A channel to a network socket</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.channels.MulticastChannel}</i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.channels.MulticastChannel}</i></td>
* <td>Can join Internet Protocol (IP) multicast groups</td></tr>
- * <tr><td valign=top>{@link java.nio.channels.Channels}</td>
+ * <tr><td style="vertical-align:top">{@link java.nio.channels.Channels}</td>
* <td>Utility methods for channel/stream interoperation</td></tr>
* </table></blockquote>
*
@@ -109,13 +122,19 @@
* be constructed that uses a given charset to encode characters into bytes and
* write them to a given writable byte channel.
*
- * <blockquote><table cellspacing=1 cellpadding=0 summary="Lists file channels and their descriptions">
- * <tr><th align="left">File channels</th><th align="left">Description</th></tr>
- * <tr><td valign=top>{@link java.nio.channels.FileChannel}</td>
+ * <blockquote><table class="borderless">
+ * <caption style="display:none">
+ * Lists file channels and their descriptions</caption>
+ * <tr><th style="text-align:left">File channels</th>
+ * <th style="text-align:left">Description</th></tr>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.FileChannel}</td>
* <td>Reads, writes, maps, and manipulates files</td></tr>
- * <tr><td valign=top>{@link java.nio.channels.FileLock}</td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.FileLock}</td>
* <td>A lock on a (region of a) file</td></tr>
- * <tr><td valign=top>{@link java.nio.MappedByteBuffer} </td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.MappedByteBuffer} </td>
* <td>A direct byte buffer mapped to a region of a file</td></tr>
* </table></blockquote>
*
@@ -136,27 +155,35 @@
* file channel connected to the same underlying file as the {@link java.io}
* class.
*
- * <a name="multiplex"></a>
- * <blockquote><table cellspacing=1 cellpadding=0 summary="Lists multiplexed, non-blocking channels and their descriptions">
- * <tr><th align="left">Multiplexed, non-blocking I/O</th><th align="left"><p>Description</th></tr>
- * <tr><td valign=top>{@link java.nio.channels.SelectableChannel}</td>
+ * <a id="multiplex"></a>
+ * <blockquote><table class="borderless">
+ * <caption style="display:none">
+ * Lists multiplexed, non-blocking channels and their descriptions</caption>
+ * <tr><th style="text-align:left">Multiplexed, non-blocking I/O</th>
+ * <th style="text-align:left">Description</th></tr>
+ * <tr><td style="vertical-align:top">{@link java.nio.channels.SelectableChannel}</td>
* <td>A channel that can be multiplexed</td></tr>
- * <tr><td valign=top> {@link java.nio.channels.DatagramChannel}</td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.DatagramChannel}</td>
* <td>A channel to a datagram-oriented socket</td></tr>
- * <tr><td valign=top> {@link java.nio.channels.Pipe.SinkChannel}</td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.Pipe.SinkChannel}</td>
* <td>The write end of a pipe</td></tr>
- * <tr><td valign=top> {@link java.nio.channels.Pipe.SourceChannel}</td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.Pipe.SourceChannel}</td>
* <td>The read end of a pipe</td></tr>
- * <tr><td valign=top> {@link java.nio.channels.ServerSocketChannel} </td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.ServerSocketChannel} </td>
* <td>A channel to a stream-oriented listening socket</td></tr>
- * <tr><td valign=top> {@link java.nio.channels.SocketChannel}</td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.SocketChannel}</td>
* <td>A channel for a stream-oriented connecting socket</td></tr>
- * <tr><td valign=top>{@link java.nio.channels.Selector}</td>
+ * <tr><td style="vertical-align:top">{@link java.nio.channels.Selector}</td>
* <td>A multiplexor of selectable channels</td></tr>
- * <tr><td valign=top>{@link java.nio.channels.SelectionKey}</td>
+ * <tr><td style="vertical-align:top">{@link java.nio.channels.SelectionKey}</td>
* <td>A token representing the registration <br> of a channel
* with a selector</td></tr>
- * <tr><td valign=top>{@link java.nio.channels.Pipe}</td>
+ * <tr><td style="vertical-align:top">{@link java.nio.channels.Pipe}</td>
* <td>Two channels that form a unidirectional pipe</td></tr>
* </table></blockquote>
*
@@ -222,19 +249,27 @@
* directly; custom channel classes should extend the appropriate {@link
* java.nio.channels.SelectableChannel} subclasses defined in this package.
*
- * <a name="async"></a>
+ * <a id="async"></a>
*
- * <blockquote><table cellspacing=1 cellpadding=0 summary="Lists asynchronous channels and their descriptions">
- * <tr><th align="left">Asynchronous I/O</th><th align="left">Description</th></tr>
- * <tr><td valign=top>{@link java.nio.channels.AsynchronousFileChannel}</td>
+ * <blockquote><table class="borderless">
+ * <caption style="display:none">
+ * Lists asynchronous channels and their descriptions</caption>
+ * <tr><th style="text-align:left">
+ * Asynchronous I/O</th><th style="text-align:left">Description</th></tr>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.AsynchronousFileChannel}</td>
* <td>An asynchronous channel for reading, writing, and manipulating a file</td></tr>
- * <tr><td valign=top>{@link java.nio.channels.AsynchronousSocketChannel}</td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.AsynchronousSocketChannel}</td>
* <td>An asynchronous channel to a stream-oriented connecting socket</td></tr>
- * <tr><td valign=top>{@link java.nio.channels.AsynchronousServerSocketChannel} </td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.AsynchronousServerSocketChannel} </td>
* <td>An asynchronous channel to a stream-oriented listening socket</td></tr>
- * <tr><td valign=top>{@link java.nio.channels.CompletionHandler}</td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.CompletionHandler}</td>
* <td>A handler for consuming the result of an asynchronous operation</td></tr>
- * <tr><td valign=top>{@link java.nio.channels.AsynchronousChannelGroup}</td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.channels.AsynchronousChannelGroup}</td>
* <td>A grouping of asynchronous channels for the purpose of resource sharing</td></tr>
* </table></blockquote>
*
@@ -277,7 +312,6 @@
* so that sophisticated users can take advantage of operating-system-specific
* asynchronous I/O mechanisms when very high performance is required.
*
- * <hr width="80%">
* <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.
--- a/jdk/src/java.base/share/classes/java/nio/charset/package-info.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/nio/charset/package-info.java Thu Jun 01 18:48:56 2017 +0000
@@ -27,17 +27,19 @@
* 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>
+ * <blockquote><table class="borderless">
+ * <caption style="display:none">Summary of charsets, decoders, and encoders in this package</caption>
+ * <tr><th style="text-align:left">Class name</th>
+ * <th style="text-align:left"><th>DescriptiPath
+ * <tr><td style="vertical-align: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>
+ * <tr><td style="vertical-align:top">{@link java.nio.charset.CharsetDecoder}</td>
* <td>Decodes bytes into characters</td></tr>
- * <tr><td valign=top>{@link java.nio.charset.CharsetEncoder} </td>
+ * <tr><td style="vertical-align:top">{@link java.nio.charset.CharsetEncoder}</td>
* <td>Encodes characters into bytes</td></tr>
- * <tr><td valign=top>{@link java.nio.charset.CoderResult} </td>
+ * <tr><td style="vertical-align:top">{@link java.nio.charset.CoderResult}</td>
* <td>Describes coder results</td></tr>
- * <tr><td valign=top>{@link java.nio.charset.CodingErrorAction} </td>
+ * <tr><td style="vertical-align:top">{@link java.nio.charset.CodingErrorAction}</td>
* <td>Describes actions to take when<br>coding errors are detected</td></tr>
*
* </table></blockquote>
--- a/jdk/src/java.base/share/classes/java/nio/file/attribute/package-info.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/nio/file/attribute/package-info.java Thu Jun 01 18:48:56 2017 +0000
@@ -26,25 +26,41 @@
/**
* Interfaces and classes providing access to file and file system attributes.
*
- * <blockquote><table cellspacing=1 cellpadding=0 summary="Attribute views">
- * <tr><th align="left">Attribute views</th><th align="left">Description</th></tr>
- * <tr><td valign=top><i>{@link java.nio.file.attribute.AttributeView}</i></td>
+ * <blockquote><table class="borderless">
+ * <caption style="display:none">Attribute views</caption>
+ * <tr><th style="text-align:left">Attribute views</th>
+ * <th style="text-align:left">Description</th></tr>
+ * <tr><td><i>{@link java.nio.file.attribute.AttributeView}</i></td>
* <td>Can read or update non-opaque values associated with objects in a file system</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.file.attribute.FileAttributeView}</i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.file.attribute.FileAttributeView}</i></td>
* <td>Can read or update file attributes</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.file.attribute.BasicFileAttributeView} </i></td>
+ * <tr><td style="vertical-align:top">
+ *
+ * <i>{@link java.nio.file.attribute.BasicFileAttributeView} </i></td>
* <td>Can read or update a basic set of file attributes</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.file.attribute.PosixFileAttributeView} </i></td>
+ * <tr><td style="vertical-align:top">
+ *
+ * <i>{@link java.nio.file.attribute.PosixFileAttributeView} </i></td>
* <td>Can read or update POSIX defined file attributes</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.file.attribute.DosFileAttributeView} </i></td>
+ * <tr><td style="vertical-align:top">
+ *
+ * <i>{@link java.nio.file.attribute.DosFileAttributeView} </i></td>
* <td>Can read or update FAT file attributes</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.file.attribute.FileOwnerAttributeView} </i></td>
+ * <tr><td style="vertical-align:top">
+ *
+ * <i>{@link java.nio.file.attribute.FileOwnerAttributeView} </i></td>
* <td>Can read or update the owner of a file</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.file.attribute.AclFileAttributeView} </i></td>
+ * <tr><td style="vertical-align:top">
+ *
+ * <i>{@link java.nio.file.attribute.AclFileAttributeView} </i></td>
* <td>Can read or update Access Control Lists</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.file.attribute.UserDefinedFileAttributeView} </i></td>
+ * <tr><td style="vertical-align:top">
+ *
+ * <i>{@link java.nio.file.attribute.UserDefinedFileAttributeView} </i></td>
* <td>Can read or update user-defined file attributes</td></tr>
- * <tr><td valign=top> <i>{@link java.nio.file.attribute.FileStoreAttributeView}</i></td>
+ * <tr><td style="vertical-align:top">
+ * <i>{@link java.nio.file.attribute.FileStoreAttributeView}</i></td>
* <td>Can read or update file system attributes</td></tr>
* </table></blockquote>
*
--- a/jdk/src/java.base/share/classes/java/nio/file/package-info.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/nio/file/package-info.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,7 @@
* package is used by service provider implementors wishing to extend the
* platform default provider, or to construct other provider implementations. </p>
*
- * <h3><a name="links">Symbolic Links</a></h3>
+ * <h3><a id="links">Symbolic Links</a></h3>
* <p> Many operating systems and file systems support for <em>symbolic links</em>.
* A symbolic link is a special file that serves as a reference to another file.
* For the most part, symbolic links are transparent to applications and
@@ -45,7 +45,7 @@
* that are semantically close but support for these other types of links is
* not included in this package. </p>
*
- * <h3><a name="interop">Interoperability</a></h3>
+ * <h3><a id="interop">Interoperability</a></h3>
* <p> The {@link java.io.File} class defines the {@link java.io.File#toPath
* toPath} method to construct a {@link java.nio.file.Path} by converting
* the abstract path represented by the {@code java.io.File} object. The resulting
@@ -65,7 +65,7 @@
* or on some other machine. The exact nature of any such inconsistencies are
* system-dependent and are therefore unspecified. </p>
*
- * <h3><a name="integrity">Synchronized I/O File Integrity</a></h3>
+ * <h3><a id="integrity">Synchronized I/O File Integrity</a></h3>
* <p> The {@link java.nio.file.StandardOpenOption#SYNC SYNC} and {@link
* java.nio.file.StandardOpenOption#DSYNC DSYNC} options are used when opening a file
* to require that updates to the file are written synchronously to the underlying
--- a/jdk/src/java.base/share/classes/java/nio/package-info.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/nio/package-info.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -60,30 +60,33 @@
* the contents of which can be used to extend the platform's default
* implementations or to construct alternative implementations.
*
- * <a name="buffers"> </a>
+ * <a id="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>{@link java.nio.Buffer}</td>
+ * <blockquote><table class="borderless">
+ * <caption style="display:none">Description of the various buffers</caption>
+ * <tr><th style="text-align:left">Buffers</th>
+ * <th style="text-align:left">Description</th></tr>
+ * <tr><td style="vertical-align:top">{@link java.nio.Buffer}</td>
* <td>Position, limit, and capacity;
* <br>clear, flip, rewind, and mark/reset</td></tr>
- * <tr><td valign=top> {@link java.nio.ByteBuffer}</td>
+ * <tr><td style="vertical-align:top"> {@link java.nio.ByteBuffer}</td>
* <td>Get/put, compact, views; allocate, wrap</td></tr>
- * <tr><td valign=top> {@link java.nio.MappedByteBuffer} </td>
+ * <tr><td style="vertical-align:top">
+ * {@link java.nio.MappedByteBuffer} </td>
* <td>A byte buffer mapped to a file</td></tr>
- * <tr><td valign=top> {@link java.nio.CharBuffer}</td>
+ * <tr><td style="vertical-align:top"> {@link java.nio.CharBuffer}</td>
* <td>Get/put, compact; allocate, wrap</td></tr>
- * <tr><td valign=top> {@link java.nio.DoubleBuffer}</td>
+ * <tr><td style="vertical-align:top"> {@link java.nio.DoubleBuffer}</td>
* <td> ' '</td></tr>
- * <tr><td valign=top> {@link java.nio.FloatBuffer}</td>
+ * <tr><td style="vertical-align:top"> {@link java.nio.FloatBuffer}</td>
* <td> ' '</td></tr>
- * <tr><td valign=top> {@link java.nio.IntBuffer}</td>
+ * <tr><td style="vertical-align:top"> {@link java.nio.IntBuffer}</td>
* <td> ' '</td></tr>
- * <tr><td valign=top> {@link java.nio.LongBuffer}</td>
+ * <tr><td style="vertical-align:top"> {@link java.nio.LongBuffer}</td>
* <td> ' '</td></tr>
- * <tr><td valign=top> {@link java.nio.ShortBuffer}</td>
+ * <tr><td style="vertical-align:top"> {@link java.nio.ShortBuffer}</td>
* <td> ' '</td></tr>
- * <tr><td valign=top>{@link java.nio.ByteOrder}</td>
+ * <tr><td style="vertical-align:top">{@link java.nio.ByteOrder}</td>
* <td>Typesafe enumeration for byte orders</td></tr>
* </table></blockquote>
*
--- a/jdk/src/java.base/share/classes/java/security/AccessControlContext.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/AccessControlContext.java Thu Jun 01 18:48:56 2017 +0000
@@ -74,6 +74,7 @@
* @see AccessController
*
* @author Roland Schemers
+ * @since 1.2
*/
public final class AccessControlContext {
--- a/jdk/src/java.base/share/classes/java/security/AccessControlException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/AccessControlException.java Thu Jun 01 18:48:56 2017 +0000
@@ -38,6 +38,7 @@
*
* @author Li Gong
* @author Roland Schemers
+ * @since 1.2
*/
public class AccessControlException extends SecurityException {
--- a/jdk/src/java.base/share/classes/java/security/AccessController.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/AccessController.java Thu Jun 01 18:48:56 2017 +0000
@@ -259,6 +259,7 @@
*
* @author Li Gong
* @author Roland Schemers
+ * @since 1.2
*/
public final class AccessController {
--- a/jdk/src/java.base/share/classes/java/security/AlgorithmParameterGenerator.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/AlgorithmParameterGenerator.java Thu Jun 01 18:48:56 2017 +0000
@@ -61,11 +61,17 @@
* </ul>
*
* <P>In case the client does not explicitly initialize the
- * AlgorithmParameterGenerator
- * (via a call to an {@code init} method), each provider must supply (and
- * document) a default initialization. For example, the Sun provider uses a
- * default modulus prime size of 1024 bits for the generation of DSA
- * parameters.
+ * AlgorithmParameterGenerator (via a call to an {@code init} method),
+ * each provider must supply (and document) a default initialization.
+ * See the Keysize Restriction sections of the
+ * <a href="{@docRoot}/../technotes/guides/security/SunProviders.html">
+ * JDK Providers</a>
+ * document for information on the AlgorithmParameterGenerator defaults
+ * used by JDK providers.
+ * However, note that defaults may vary across different providers.
+ * Additionally, the default value for a provider may change in a future
+ * version. Therefore, it is recommended to explicitly initialize the
+ * AlgorithmParameterGenerator instead of relying on provider-specific defaults.
*
* <p> Every implementation of the Java platform is required to support the
* following standard {@code AlgorithmParameterGenerator} algorithms and
--- a/jdk/src/java.base/share/classes/java/security/AlgorithmParameterGeneratorSpi.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/AlgorithmParameterGeneratorSpi.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,8 +39,15 @@
* <p> In case the client does not explicitly initialize the
* AlgorithmParameterGenerator (via a call to an {@code engineInit}
* method), each provider must supply (and document) a default initialization.
- * For example, the Sun provider uses a default modulus prime size of 1024
- * bits for the generation of DSA parameters.
+ * See the Keysize Restriction sections of the
+ * <a href="{@docRoot}/../technotes/guides/security/SunProviders.html">
+ * JDK Providers</a>
+ * document for information on the AlgorithmParameterGenerator defaults
+ * used by JDK providers.
+ * However, note that defaults may vary across different providers.
+ * Additionally, the default value for a provider may change in a future
+ * version. Therefore, it is recommended to explicitly initialize the
+ * AlgorithmParameterGenerator instead of relying on provider-specific defaults.
*
* @author Jan Luehe
*
--- a/jdk/src/java.base/share/classes/java/security/AllPermission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/AllPermission.java Thu Jun 01 18:48:56 2017 +0000
@@ -51,6 +51,7 @@
*
*
* @author Roland Schemers
+ * @since 1.2
*
* @serial exclude
*/
--- a/jdk/src/java.base/share/classes/java/security/BasicPermission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/BasicPermission.java Thu Jun 01 18:48:56 2017 +0000
@@ -62,6 +62,7 @@
*
* @author Marianne Mueller
* @author Roland Schemers
+ * @since 1.2
*/
public abstract class BasicPermission extends Permission
--- a/jdk/src/java.base/share/classes/java/security/Certificate.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Certificate.java Thu Jun 01 18:48:56 2017 +0000
@@ -56,6 +56,7 @@
* the certificate and satisfy itself of its validity.
*
* @author Benjamin Renaud
+ * @since 1.1
* @deprecated A new certificate handling package is created in the Java platform.
* This Certificate interface is entirely deprecated and
* is here to allow for a smooth transition to the new
--- a/jdk/src/java.base/share/classes/java/security/CodeSource.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/CodeSource.java Thu Jun 01 18:48:56 2017 +0000
@@ -44,6 +44,7 @@
*
* @author Li Gong
* @author Roland Schemers
+ * @since 1.2
*/
public class CodeSource implements java.io.Serializable {
--- a/jdk/src/java.base/share/classes/java/security/DigestException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/DigestException.java Thu Jun 01 18:48:56 2017 +0000
@@ -29,6 +29,7 @@
* This is the generic Message Digest exception.
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public class DigestException extends GeneralSecurityException {
--- a/jdk/src/java.base/share/classes/java/security/DigestInputStream.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/DigestInputStream.java Thu Jun 01 18:48:56 2017 +0000
@@ -59,6 +59,7 @@
* @see DigestOutputStream
*
* @author Benjamin Renaud
+ * @since 1.2
*/
public class DigestInputStream extends FilterInputStream {
--- a/jdk/src/java.base/share/classes/java/security/DigestOutputStream.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/DigestOutputStream.java Thu Jun 01 18:48:56 2017 +0000
@@ -51,6 +51,7 @@
* @see DigestInputStream
*
* @author Benjamin Renaud
+ * @since 1.2
*/
public class DigestOutputStream extends FilterOutputStream {
--- a/jdk/src/java.base/share/classes/java/security/GeneralSecurityException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/GeneralSecurityException.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* security-related exception classes that extend from it.
*
* @author Jan Luehe
+ * @since 1.2
*/
public class GeneralSecurityException extends Exception {
--- a/jdk/src/java.base/share/classes/java/security/Guard.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Guard.java Thu Jun 01 18:48:56 2017 +0000
@@ -38,6 +38,7 @@
*
* @author Roland Schemers
* @author Li Gong
+ * @since 1.2
*/
public interface Guard {
--- a/jdk/src/java.base/share/classes/java/security/GuardedObject.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/GuardedObject.java Thu Jun 01 18:48:56 2017 +0000
@@ -44,6 +44,7 @@
*
* @author Roland Schemers
* @author Li Gong
+ * @since 1.2
*/
public class GuardedObject implements java.io.Serializable {
--- a/jdk/src/java.base/share/classes/java/security/Identity.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Identity.java Thu Jun 01 18:48:56 2017 +0000
@@ -51,6 +51,7 @@
* @see Principal
*
* @author Benjamin Renaud
+ * @since 1.1
* @deprecated This class is no longer used. Its functionality has been
* replaced by {@code java.security.KeyStore}, the
* {@code java.security.cert} package, and
--- a/jdk/src/java.base/share/classes/java/security/IdentityScope.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/IdentityScope.java Thu Jun 01 18:48:56 2017 +0000
@@ -55,6 +55,7 @@
* @see Key
*
* @author Benjamin Renaud
+ * @since 1.1
*
* @deprecated This class is no longer used. Its functionality has been
* replaced by {@code java.security.KeyStore}, the
--- a/jdk/src/java.base/share/classes/java/security/InvalidKeyException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/InvalidKeyException.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* length, uninitialized, etc).
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public class InvalidKeyException extends KeyException {
--- a/jdk/src/java.base/share/classes/java/security/InvalidParameterException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/InvalidParameterException.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* to a method.
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public class InvalidParameterException extends IllegalArgumentException {
--- a/jdk/src/java.base/share/classes/java/security/Key.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Key.java Thu Jun 01 18:48:56 2017 +0000
@@ -97,6 +97,7 @@
* @see Signer
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public interface Key extends java.io.Serializable {
--- a/jdk/src/java.base/share/classes/java/security/KeyException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/KeyException.java Thu Jun 01 18:48:56 2017 +0000
@@ -33,6 +33,7 @@
* @see KeyManagementException
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public class KeyException extends GeneralSecurityException {
--- a/jdk/src/java.base/share/classes/java/security/KeyManagementException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/KeyManagementException.java Thu Jun 01 18:48:56 2017 +0000
@@ -38,6 +38,7 @@
* </ul>
*
* @author Benjamin Renaud
+ * @since 1.1
*
* @see Key
* @see KeyException
--- a/jdk/src/java.base/share/classes/java/security/KeyPair.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/KeyPair.java Thu Jun 01 18:48:56 2017 +0000
@@ -36,6 +36,7 @@
* @see PrivateKey
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public final class KeyPair implements java.io.Serializable {
--- a/jdk/src/java.base/share/classes/java/security/KeyPairGenerator.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/KeyPairGenerator.java Thu Jun 01 18:48:56 2017 +0000
@@ -95,8 +95,15 @@
* <p>In case the client does not explicitly initialize the KeyPairGenerator
* (via a call to an {@code initialize} method), each provider must
* supply (and document) a default initialization.
- * For example, the <i>Sun</i> provider uses a default modulus size (keysize)
- * of 1024 bits for DSA key pairs.
+ * See the Keysize Restriction sections of the
+ * <a href="{@docRoot}/../technotes/guides/security/SunProviders.html">
+ * JDK Providers</a>
+ * document for information on the KeyPairGenerator defaults used by
+ * JDK providers.
+ * However, note that defaults may vary across different providers.
+ * Additionally, the default value for a provider may change in a future
+ * version. Therefore, it is recommended to explicitly initialize the
+ * KeyPairGenerator instead of relying on provider-specific defaults.
*
* <p>Note that this class is abstract and extends from
* {@code KeyPairGeneratorSpi} for historical reasons.
@@ -121,6 +128,7 @@
* other algorithms are supported.
*
* @author Benjamin Renaud
+ * @since 1.1
*
* @see java.security.spec.AlgorithmParameterSpec
*/
--- a/jdk/src/java.base/share/classes/java/security/KeyPairGeneratorSpi.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/KeyPairGeneratorSpi.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,10 +39,18 @@
* <p> In case the client does not explicitly initialize the KeyPairGenerator
* (via a call to an {@code initialize} method), each provider must
* supply (and document) a default initialization.
- * For example, the <i>Sun</i> provider uses a default modulus size (keysize)
- * of 1024 bits.
+ * See the Keysize Restriction sections of the
+ * <a href="{@docRoot}/../technotes/guides/security/SunProviders.html">
+ * JDK Providers</a>
+ * document for information on the KeyPairGenerator defaults used by
+ * JDK providers.
+ * However, note that defaults may vary across different providers.
+ * Additionally, the default value for a provider may change in a future
+ * version. Therefore, it is recommended to explicitly initialize the
+ * KeyPairGenerator instead of relying on provider-specific defaults.
*
* @author Benjamin Renaud
+ * @since 1.2
*
*
* @see KeyPairGenerator
--- a/jdk/src/java.base/share/classes/java/security/MessageDigest.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/MessageDigest.java Thu Jun 01 18:48:56 2017 +0000
@@ -96,6 +96,7 @@
* other algorithms are supported.
*
* @author Benjamin Renaud
+ * @since 1.1
*
* @see DigestInputStream
* @see DigestOutputStream
--- a/jdk/src/java.base/share/classes/java/security/MessageDigestSpi.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/MessageDigestSpi.java Thu Jun 01 18:48:56 2017 +0000
@@ -43,6 +43,7 @@
* <p> Implementations are free to implement the Cloneable interface.
*
* @author Benjamin Renaud
+ * @since 1.2
*
*
* @see MessageDigest
--- a/jdk/src/java.base/share/classes/java/security/NoSuchAlgorithmException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/NoSuchAlgorithmException.java Thu Jun 01 18:48:56 2017 +0000
@@ -30,6 +30,7 @@
* requested but is not available in the environment.
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public class NoSuchAlgorithmException extends GeneralSecurityException {
--- a/jdk/src/java.base/share/classes/java/security/NoSuchProviderException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/NoSuchProviderException.java Thu Jun 01 18:48:56 2017 +0000
@@ -30,6 +30,7 @@
* requested but is not available in the environment.
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public class NoSuchProviderException extends GeneralSecurityException {
--- a/jdk/src/java.base/share/classes/java/security/Permission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Permission.java Thu Jun 01 18:48:56 2017 +0000
@@ -60,6 +60,7 @@
*
* @author Marianne Mueller
* @author Roland Schemers
+ * @since 1.2
*/
public abstract class Permission implements Guard, java.io.Serializable {
--- a/jdk/src/java.base/share/classes/java/security/PermissionCollection.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/PermissionCollection.java Thu Jun 01 18:48:56 2017 +0000
@@ -91,6 +91,7 @@
*
*
* @author Roland Schemers
+ * @since 1.2
*/
public abstract class PermissionCollection implements java.io.Serializable {
--- a/jdk/src/java.base/share/classes/java/security/Permissions.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Permissions.java Thu Jun 01 18:48:56 2017 +0000
@@ -75,6 +75,7 @@
*
* @author Marianne Mueller
* @author Roland Schemers
+ * @since 1.2
*
* @serial exclude
*/
--- a/jdk/src/java.base/share/classes/java/security/Policy.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Policy.java Thu Jun 01 18:48:56 2017 +0000
@@ -78,6 +78,7 @@
*
* @author Roland Schemers
* @author Gary Ellison
+ * @since 1.2
* @see java.security.Provider
* @see java.security.ProtectionDomain
* @see java.security.Permission
--- a/jdk/src/java.base/share/classes/java/security/Principal.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Principal.java Thu Jun 01 18:48:56 2017 +0000
@@ -35,6 +35,7 @@
* @see java.security.cert.X509Certificate
*
* @author Li Gong
+ * @since 1.1
*/
public interface Principal {
--- a/jdk/src/java.base/share/classes/java/security/PrivateKey.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/PrivateKey.java Thu Jun 01 18:48:56 2017 +0000
@@ -54,6 +54,7 @@
*
* @author Benjamin Renaud
* @author Josh Bloch
+ * @since 1.1
*/
public interface PrivateKey extends Key, javax.security.auth.Destroyable {
--- a/jdk/src/java.base/share/classes/java/security/PrivilegedAction.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/PrivilegedAction.java Thu Jun 01 18:48:56 2017 +0000
@@ -34,6 +34,7 @@
* throw checked exceptions must use {@code PrivilegedExceptionAction}
* instead.
*
+ * @since 1.2
* @see AccessController
* @see AccessController#doPrivileged(PrivilegedAction)
* @see PrivilegedExceptionAction
--- a/jdk/src/java.base/share/classes/java/security/PrivilegedActionException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/PrivilegedActionException.java Thu Jun 01 18:48:56 2017 +0000
@@ -43,6 +43,7 @@
* <i>cause</i>, and may be accessed via the {@link Throwable#getCause()}
* method, as well as the aforementioned "legacy method."
*
+ * @since 1.2
* @see PrivilegedExceptionAction
* @see AccessController#doPrivileged(PrivilegedExceptionAction)
* @see AccessController#doPrivileged(PrivilegedExceptionAction,AccessControlContext)
--- a/jdk/src/java.base/share/classes/java/security/PrivilegedExceptionAction.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/PrivilegedExceptionAction.java Thu Jun 01 18:48:56 2017 +0000
@@ -35,6 +35,7 @@
* computations that do not throw
* checked exceptions should use {@code PrivilegedAction} instead.
*
+ * @since 1.2
* @see AccessController
* @see AccessController#doPrivileged(PrivilegedExceptionAction)
* @see AccessController#doPrivileged(PrivilegedExceptionAction,
--- a/jdk/src/java.base/share/classes/java/security/ProtectionDomain.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/ProtectionDomain.java Thu Jun 01 18:48:56 2017 +0000
@@ -59,6 +59,7 @@
* @author Li Gong
* @author Roland Schemers
* @author Gary Ellison
+ * @since 1.2
*/
public class ProtectionDomain {
--- a/jdk/src/java.base/share/classes/java/security/Provider.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Provider.java Thu Jun 01 18:48:56 2017 +0000
@@ -102,6 +102,7 @@
*
* @author Benjamin Renaud
* @author Andreas Sterbenz
+ * @since 1.1
*/
public abstract class Provider extends Properties {
--- a/jdk/src/java.base/share/classes/java/security/ProviderException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/ProviderException.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,7 @@
* throw specialized, provider-specific runtime errors.
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public class ProviderException extends RuntimeException {
--- a/jdk/src/java.base/share/classes/java/security/PublicKey.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/PublicKey.java Thu Jun 01 18:48:56 2017 +0000
@@ -34,6 +34,7 @@
* See, for example, the DSAPublicKey interface in
* {@code java.security.interfaces}.
*
+ * @since 1.1
* @see Key
* @see PrivateKey
* @see Certificate
--- a/jdk/src/java.base/share/classes/java/security/SecureClassLoader.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/SecureClassLoader.java Thu Jun 01 18:48:56 2017 +0000
@@ -39,6 +39,7 @@
*
* @author Li Gong
* @author Roland Schemers
+ * @since 1.2
*/
public class SecureClassLoader extends ClassLoader {
/*
--- a/jdk/src/java.base/share/classes/java/security/SecureRandom.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/SecureRandom.java Thu Jun 01 18:48:56 2017 +0000
@@ -143,6 +143,7 @@
*
* @author Benjamin Renaud
* @author Josh Bloch
+ * @since 1.1
*/
public class SecureRandom extends java.util.Random {
--- a/jdk/src/java.base/share/classes/java/security/Security.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Security.java Thu Jun 01 18:48:56 2017 +0000
@@ -45,6 +45,7 @@
* {@code conf/security/java.security} in the Java installation directory.
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public final class Security {
--- a/jdk/src/java.base/share/classes/java/security/SecurityPermission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/SecurityPermission.java Thu Jun 01 18:48:56 2017 +0000
@@ -333,6 +333,7 @@
*
* @author Marianne Mueller
* @author Roland Schemers
+ * @since 1.2
*/
public final class SecurityPermission extends BasicPermission {
--- a/jdk/src/java.base/share/classes/java/security/Signature.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Signature.java Thu Jun 01 18:48:56 2017 +0000
@@ -113,6 +113,7 @@
* other algorithms are supported.
*
* @author Benjamin Renaud
+ * @since 1.1
*
*/
--- a/jdk/src/java.base/share/classes/java/security/SignatureException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/SignatureException.java Thu Jun 01 18:48:56 2017 +0000
@@ -29,6 +29,7 @@
* This is the generic Signature exception.
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public class SignatureException extends GeneralSecurityException {
--- a/jdk/src/java.base/share/classes/java/security/SignatureSpi.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/SignatureSpi.java Thu Jun 01 18:48:56 2017 +0000
@@ -44,6 +44,7 @@
* of a particular signature algorithm.
*
* @author Benjamin Renaud
+ * @since 1.2
*
*
* @see Signature
--- a/jdk/src/java.base/share/classes/java/security/SignedObject.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/SignedObject.java Thu Jun 01 18:48:56 2017 +0000
@@ -114,6 +114,7 @@
* @see Signature
*
* @author Li Gong
+ * @since 1.2
*/
public final class SignedObject implements Serializable {
--- a/jdk/src/java.base/share/classes/java/security/Signer.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/Signer.java Thu Jun 01 18:48:56 2017 +0000
@@ -38,6 +38,7 @@
* @see Identity
*
* @author Benjamin Renaud
+ * @since 1.1
*
* @deprecated This class is no longer used. Its functionality has been
* replaced by {@code java.security.KeyStore}, the
--- a/jdk/src/java.base/share/classes/java/security/UnresolvedPermission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/UnresolvedPermission.java Thu Jun 01 18:48:56 2017 +0000
@@ -96,6 +96,7 @@
*
*
* @author Roland Schemers
+ * @since 1.2
*/
public final class UnresolvedPermission extends Permission
--- a/jdk/src/java.base/share/classes/java/security/UnresolvedPermissionCollection.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/UnresolvedPermissionCollection.java Thu Jun 01 18:48:56 2017 +0000
@@ -43,6 +43,7 @@
*
*
* @author Roland Schemers
+ * @since 1.2
*
* @serial include
*/
--- a/jdk/src/java.base/share/classes/java/security/acl/Acl.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/acl/Acl.java Thu Jun 01 18:48:56 2017 +0000
@@ -82,6 +82,7 @@
* @see java.security.acl.Acl#getPermissions
*
* @author Satish Dharmaraj
+ * @since 1.1
*
* @deprecated This package has been replaced by {@code java.security.Policy}
* and related classes since 1.2.
--- a/jdk/src/java.base/share/classes/java/security/acl/AclEntry.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/acl/AclEntry.java Thu Jun 01 18:48:56 2017 +0000
@@ -50,6 +50,7 @@
* @see java.security.acl.Acl
*
* @author Satish Dharmaraj
+ * @since 1.1
*
* @deprecated This package has been replaced by {@code java.security.Policy}
* and related classes since 1.2.
--- a/jdk/src/java.base/share/classes/java/security/acl/AclNotFoundException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/acl/AclNotFoundException.java Thu Jun 01 18:48:56 2017 +0000
@@ -30,6 +30,7 @@
* non-existent ACL (Access Control List).
*
* @author Satish Dharmaraj
+ * @since 1.1
*
* @deprecated This package has been replaced by {@code java.security.Policy}
* and related classes since 1.2.
--- a/jdk/src/java.base/share/classes/java/security/acl/Group.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/acl/Group.java Thu Jun 01 18:48:56 2017 +0000
@@ -39,6 +39,7 @@
* Principal or Group.
*
* @author Satish Dharmaraj
+ * @since 1.1
*
* @deprecated This package has been replaced by {@code java.security.Policy}
* and related classes since 1.2.
--- a/jdk/src/java.base/share/classes/java/security/acl/LastOwnerException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/acl/LastOwnerException.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,7 @@
* @see java.security.acl.Owner#deleteOwner
*
* @author Satish Dharmaraj
+ * @since 1.1
*
* @deprecated This package has been replaced by {@code java.security.Policy}
* and related classes since 1.2.
--- a/jdk/src/java.base/share/classes/java/security/acl/NotOwnerException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/acl/NotOwnerException.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* the object, but the Principal attempting the modification is not an owner.
*
* @author Satish Dharmaraj
+ * @since 1.1
*
* @deprecated This package has been replaced by {@code java.security.Policy}
* and related classes since 1.2.
--- a/jdk/src/java.base/share/classes/java/security/acl/Owner.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/acl/Owner.java Thu Jun 01 18:48:56 2017 +0000
@@ -34,6 +34,7 @@
* interface.) The initial owner Principal should be specified as an
* argument to the constructor of the class implementing this interface.
*
+ * @since 1.1
* @see java.security.acl.Acl
*
* @deprecated This package has been replaced by {@code java.security.Policy}
--- a/jdk/src/java.base/share/classes/java/security/acl/Permission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/acl/Permission.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* a particular type of access to a resource.
*
* @author Satish Dharmaraj
+ * @since 1.1
*
* @deprecated This package has been replaced by {@code java.security.Policy}
* and related classes since 1.2.
--- a/jdk/src/java.base/share/classes/java/security/cert/CRLException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/CRLException.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* CRL (Certificate Revocation List) Exception.
*
* @author Hemma Prafullchandra
+ * @since 1.2
*/
public class CRLException extends GeneralSecurityException {
--- a/jdk/src/java.base/share/classes/java/security/cert/Certificate.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/Certificate.java Thu Jun 01 18:48:56 2017 +0000
@@ -57,6 +57,7 @@
* @see CertificateFactory
*
* @author Hemma Prafullchandra
+ * @since 1.2
*/
public abstract class Certificate implements java.io.Serializable {
--- a/jdk/src/java.base/share/classes/java/security/cert/CertificateEncodingException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/CertificateEncodingException.java Thu Jun 01 18:48:56 2017 +0000
@@ -30,6 +30,7 @@
* occurs while attempting to encode a certificate.
*
* @author Hemma Prafullchandra
+ * @since 1.2
*/
public class CertificateEncodingException extends CertificateException {
--- a/jdk/src/java.base/share/classes/java/security/cert/CertificateException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/CertificateException.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* This exception indicates one of a variety of certificate problems.
*
* @author Hemma Prafullchandra
+ * @since 1.2
* @see Certificate
*/
public class CertificateException extends GeneralSecurityException {
--- a/jdk/src/java.base/share/classes/java/security/cert/CertificateExpiredException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/CertificateExpiredException.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,7 @@
* of the certificate.
*
* @author Hemma Prafullchandra
+ * @since 1.2
*/
public class CertificateExpiredException extends CertificateException {
--- a/jdk/src/java.base/share/classes/java/security/cert/CertificateNotYetValidException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/CertificateNotYetValidException.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,7 @@
* validity period.
*
* @author Hemma Prafullchandra
+ * @since 1.2
*/
public class CertificateNotYetValidException extends CertificateException {
--- a/jdk/src/java.base/share/classes/java/security/cert/CertificateParsingException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/CertificateParsingException.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* are found in the Certificate.
*
* @author Hemma Prafullchandra
+ * @since 1.2
*/
public class CertificateParsingException extends CertificateException {
--- a/jdk/src/java.base/share/classes/java/security/cert/X509CRL.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/X509CRL.java Thu Jun 01 18:48:56 2017 +0000
@@ -102,6 +102,7 @@
* }</pre>
*
* @author Hemma Prafullchandra
+ * @since 1.2
*
*
* @see CRL
--- a/jdk/src/java.base/share/classes/java/security/cert/X509CRLEntry.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/X509CRLEntry.java Thu Jun 01 18:48:56 2017 +0000
@@ -62,6 +62,7 @@
* @see X509Extension
*
* @author Hemma Prafullchandra
+ * @since 1.2
*/
public abstract class X509CRLEntry implements X509Extension {
--- a/jdk/src/java.base/share/classes/java/security/cert/X509Certificate.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/X509Certificate.java Thu Jun 01 18:48:56 2017 +0000
@@ -95,6 +95,7 @@
* </pre>
*
* @author Hemma Prafullchandra
+ * @since 1.2
*
*
* @see Certificate
--- a/jdk/src/java.base/share/classes/java/security/cert/X509Extension.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/cert/X509Extension.java Thu Jun 01 18:48:56 2017 +0000
@@ -65,6 +65,7 @@
* be handled by a <em>Class</em> that understands the extension.
*
* @author Hemma Prafullchandra
+ * @since 1.2
*/
public interface X509Extension {
--- a/jdk/src/java.base/share/classes/java/security/interfaces/DSAKey.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/interfaces/DSAKey.java Thu Jun 01 18:48:56 2017 +0000
@@ -35,6 +35,7 @@
*
* @author Benjamin Renaud
* @author Josh Bloch
+ * @since 1.1
*/
public interface DSAKey {
--- a/jdk/src/java.base/share/classes/java/security/interfaces/DSAKeyPairGenerator.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/interfaces/DSAKeyPairGenerator.java Thu Jun 01 18:48:56 2017 +0000
@@ -65,6 +65,7 @@
* <p>Note: Some earlier implementations of this interface may not support
* larger sizes of DSA parameters such as 2048 and 3072-bit.
*
+ * @since 1.1
* @see java.security.KeyPairGenerator
*/
public interface DSAKeyPairGenerator {
--- a/jdk/src/java.base/share/classes/java/security/interfaces/DSAParams.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/interfaces/DSAParams.java Thu Jun 01 18:48:56 2017 +0000
@@ -38,6 +38,7 @@
*
* @author Benjamin Renaud
* @author Josh Bloch
+ * @since 1.1
*/
public interface DSAParams {
--- a/jdk/src/java.base/share/classes/java/security/interfaces/DSAPrivateKey.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/interfaces/DSAPrivateKey.java Thu Jun 01 18:48:56 2017 +0000
@@ -37,6 +37,7 @@
* @see DSAPublicKey
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public interface DSAPrivateKey extends DSAKey, java.security.PrivateKey {
--- a/jdk/src/java.base/share/classes/java/security/interfaces/DSAPublicKey.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/interfaces/DSAPublicKey.java Thu Jun 01 18:48:56 2017 +0000
@@ -37,6 +37,7 @@
* @see DSAPrivateKey
*
* @author Benjamin Renaud
+ * @since 1.1
*/
public interface DSAPublicKey extends DSAKey, java.security.PublicKey {
--- a/jdk/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,7 @@
* using the <i>Chinese Remainder Theorem</i> (CRT) information values.
*
* @author Jan Luehe
+ * @since 1.2
*
*
* @see RSAPrivateKey
--- a/jdk/src/java.base/share/classes/java/security/interfaces/RSAPrivateKey.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/interfaces/RSAPrivateKey.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* The interface to an RSA private key.
*
* @author Jan Luehe
+ * @since 1.2
*
*
* @see RSAPrivateCrtKey
--- a/jdk/src/java.base/share/classes/java/security/interfaces/RSAPublicKey.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/interfaces/RSAPublicKey.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* The interface to an RSA public key.
*
* @author Jan Luehe
+ * @since 1.2
*
*/
--- a/jdk/src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java Thu Jun 01 18:48:56 2017 +0000
@@ -33,6 +33,7 @@
* efficiency.
*
* @author Jan Luehe
+ * @since 1.2
*
*
* @see java.security.Key
--- a/jdk/src/java.base/share/classes/java/security/spec/RSAPrivateKeySpec.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/spec/RSAPrivateKeySpec.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* This class specifies an RSA private key.
*
* @author Jan Luehe
+ * @since 1.2
*
*
* @see java.security.Key
--- a/jdk/src/java.base/share/classes/java/security/spec/RSAPublicKeySpec.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/security/spec/RSAPublicKeySpec.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* This class specifies an RSA public key.
*
* @author Jan Luehe
+ * @since 1.2
*
*
* @see java.security.Key
--- a/jdk/src/java.base/share/classes/java/text/BreakIterator.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/BreakIterator.java Thu Jun 01 18:48:56 2017 +0000
@@ -221,6 +221,7 @@
* and the next is a word; otherwise, it's the material between words.)
* </blockquote>
*
+ * @since 1.1
* @see CharacterIterator
*
*/
--- a/jdk/src/java.base/share/classes/java/text/CharacterIterator.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/CharacterIterator.java Thu Jun 01 18:48:56 2017 +0000
@@ -98,6 +98,7 @@
* }
* }</pre>
*
+ * @since 1.1
* @see StringCharacterIterator
* @see AttributedCharacterIterator
*/
--- a/jdk/src/java.base/share/classes/java/text/ChoiceFormat.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/ChoiceFormat.java Thu Jun 01 18:48:56 2017 +0000
@@ -163,6 +163,7 @@
* @see DecimalFormat
* @see MessageFormat
* @author Mark Davis
+ * @since 1.1
*/
public class ChoiceFormat extends NumberFormat {
--- a/jdk/src/java.base/share/classes/java/text/CollationElementIterator.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/CollationElementIterator.java Thu Jun 01 18:48:56 2017 +0000
@@ -104,6 +104,7 @@
* @see Collator
* @see RuleBasedCollator
* @author Helena Shih, Laura Werner, Richard Gillam
+ * @since 1.1
*/
public final class CollationElementIterator
{
--- a/jdk/src/java.base/share/classes/java/text/CollationKey.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/CollationKey.java Thu Jun 01 18:48:56 2017 +0000
@@ -95,6 +95,7 @@
* @see Collator
* @see RuleBasedCollator
* @author Helena Shih
+ * @since 1.1
*/
public abstract class CollationKey implements Comparable<CollationKey> {
--- a/jdk/src/java.base/share/classes/java/text/Collator.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/Collator.java Thu Jun 01 18:48:56 2017 +0000
@@ -123,6 +123,7 @@
* @see CollationElementIterator
* @see Locale
* @author Helena Shih, Laura Werner, Richard Gillam
+ * @since 1.1
*/
public abstract class Collator
--- a/jdk/src/java.base/share/classes/java/text/DateFormat.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/DateFormat.java Thu Jun 01 18:48:56 2017 +0000
@@ -167,6 +167,7 @@
* @see java.util.GregorianCalendar
* @see java.util.TimeZone
* @author Mark Davis, Chen-Lieh Huang, Alan Liu
+ * @since 1.1
*/
public abstract class DateFormat extends Format {
--- a/jdk/src/java.base/share/classes/java/text/DateFormatSymbols.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/DateFormatSymbols.java Thu Jun 01 18:48:56 2017 +0000
@@ -98,6 +98,7 @@
* @see SimpleDateFormat
* @see java.util.SimpleTimeZone
* @author Chen-Lieh Huang
+ * @since 1.1
*/
public class DateFormatSymbols implements Serializable, Cloneable {
--- a/jdk/src/java.base/share/classes/java/text/DecimalFormat.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/DecimalFormat.java Thu Jun 01 18:48:56 2017 +0000
@@ -381,6 +381,7 @@
* @see ParsePosition
* @author Mark Davis
* @author Alan Liu
+ * @since 1.1
*/
public class DecimalFormat extends NumberFormat {
--- a/jdk/src/java.base/share/classes/java/text/DecimalFormatSymbols.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/DecimalFormatSymbols.java Thu Jun 01 18:48:56 2017 +0000
@@ -60,6 +60,7 @@
* @see DecimalFormat
* @author Mark Davis
* @author Alan Liu
+ * @since 1.1
*/
public class DecimalFormatSymbols implements Cloneable, Serializable {
--- a/jdk/src/java.base/share/classes/java/text/FieldPosition.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/FieldPosition.java Thu Jun 01 18:48:56 2017 +0000
@@ -68,6 +68,7 @@
* <code>formatToCharacterIterator</code>.
*
* @author Mark Davis
+ * @since 1.1
* @see java.text.Format
*/
public class FieldPosition {
--- a/jdk/src/java.base/share/classes/java/text/Format.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/Format.java Thu Jun 01 18:48:56 2017 +0000
@@ -129,6 +129,7 @@
* @see java.text.DateFormat
* @see java.text.MessageFormat
* @author Mark Davis
+ * @since 1.1
*/
public abstract class Format implements Serializable, Cloneable {
--- a/jdk/src/java.base/share/classes/java/text/MessageFormat.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/MessageFormat.java Thu Jun 01 18:48:56 2017 +0000
@@ -344,6 +344,7 @@
* @see SimpleDateFormat
*
* @author Mark Davis
+ * @since 1.1
*/
public class MessageFormat extends Format {
--- a/jdk/src/java.base/share/classes/java/text/NumberFormat.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/NumberFormat.java Thu Jun 01 18:48:56 2017 +0000
@@ -185,6 +185,7 @@
* @see ChoiceFormat
* @author Mark Davis
* @author Helena Shih
+ * @since 1.1
*/
public abstract class NumberFormat extends Format {
--- a/jdk/src/java.base/share/classes/java/text/ParseException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/ParseException.java Thu Jun 01 18:48:56 2017 +0000
@@ -45,6 +45,7 @@
* @see java.text.Format
* @see java.text.FieldPosition
* @author Mark Davis
+ * @since 1.1
*/
public
class ParseException extends Exception {
--- a/jdk/src/java.base/share/classes/java/text/ParsePosition.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/ParsePosition.java Thu Jun 01 18:48:56 2017 +0000
@@ -51,6 +51,7 @@
* records the current position.
*
* @author Mark Davis
+ * @since 1.1
* @see java.text.Format
*/
--- a/jdk/src/java.base/share/classes/java/text/RuleBasedCollator.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/RuleBasedCollator.java Thu Jun 01 18:48:56 2017 +0000
@@ -242,6 +242,7 @@
* @see Collator
* @see CollationElementIterator
* @author Helena Shih, Laura Werner, Richard Gillam
+ * @since 1.1
*/
public class RuleBasedCollator extends Collator{
// IMPLEMENTATION NOTES: The implementation of the collation algorithm is
--- a/jdk/src/java.base/share/classes/java/text/SimpleDateFormat.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/SimpleDateFormat.java Thu Jun 01 18:48:56 2017 +0000
@@ -434,6 +434,7 @@
* @see DateFormat
* @see DateFormatSymbols
* @author Mark Davis, Chen-Lieh Huang, Alan Liu
+ * @since 1.1
*/
public class SimpleDateFormat extends DateFormat {
--- a/jdk/src/java.base/share/classes/java/text/StringCharacterIterator.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/text/StringCharacterIterator.java Thu Jun 01 18:48:56 2017 +0000
@@ -47,6 +47,7 @@
* entire <code>String</code>.
*
* @see CharacterIterator
+ * @since 1.1
*/
public final class StringCharacterIterator implements CharacterIterator
--- a/jdk/src/java.base/share/classes/java/util/concurrent/CompletionService.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/CompletionService.java Thu Jun 01 18:48:56 2017 +0000
@@ -57,6 +57,8 @@
* <a href="package-summary.html#MemoryVisibility"><i>happen-before</i></a>
* actions taken by that task, which in turn <i>happen-before</i>
* actions following a successful return from the corresponding {@code take()}.
+ *
+ * @since 1.5
*/
public interface CompletionService<V> {
/**
--- a/jdk/src/java.base/share/classes/java/util/concurrent/ExecutorCompletionService.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ExecutorCompletionService.java Thu Jun 01 18:48:56 2017 +0000
@@ -97,6 +97,8 @@
* if (result != null)
* use(result);
* }}</pre>
+ *
+ * @since 1.5
*/
public class ExecutorCompletionService<V> implements CompletionService<V> {
private final Executor executor;
--- a/jdk/src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java Thu Jun 01 18:48:56 2017 +0000
@@ -133,6 +133,8 @@
* Class<?> ensureLoaded = LockSupport.class;
* }
* }}</pre>
+ *
+ * @since 1.5
*/
public class LockSupport {
private LockSupport() {} // Cannot be instantiated.
--- a/jdk/src/java.base/share/classes/java/util/jar/JarEntry.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/jar/JarEntry.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,8 @@
/**
* This class is used to represent a JAR file entry.
+ *
+ * @since 1.2
*/
public
class JarEntry extends ZipEntry {
--- a/jdk/src/java.base/share/classes/java/util/package-info.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/package-info.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,7 @@
* miscellaneous utility classes (a string tokenizer, a random-number
* generator, and a bit array).
*
- * <h2><a name="CollectionsFramework"></a>{@index "Java Collections Framework"}</h2>
+ * <h2><a id="CollectionsFramework"></a>{@index "Java Collections Framework"}</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>
--- a/jdk/src/java.base/share/classes/java/util/spi/CalendarNameProvider.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/spi/CalendarNameProvider.java Thu Jun 01 18:48:56 2017 +0000
@@ -46,7 +46,7 @@
* Calendar}. The following are calendar-common fields and their values to be
* supported for each calendar system.
*
- * <table class="plain" style="border-bottom:1px solid">
+ * <table class="plain">
* <caption style="display:none">Field values</caption>
* <thead>
* <tr>
@@ -57,8 +57,8 @@
* </thead>
* <tbody>
* <tr>
- * <td valign="top">{@link Calendar#MONTH}</td>
- * <td valign="top">{@link Calendar#JANUARY} to {@link Calendar#UNDECIMBER}</td>
+ * <td style="vertical-align:top">{@link Calendar#MONTH}</td>
+ * <td style="vertical-align:top">{@link Calendar#JANUARY} to {@link Calendar#UNDECIMBER}</td>
* <td>Month numbering is 0-based (e.g., 0 - January, ..., 11 -
* December). Some calendar systems have 13 months. Month
* names need to be supported in both the formatting and
@@ -67,14 +67,14 @@
* in both of the forms.</td>
* </tr>
* <tr>
- * <td valign="top">{@link Calendar#DAY_OF_WEEK}</td>
- * <td valign="top">{@link Calendar#SUNDAY} to {@link Calendar#SATURDAY}</td>
+ * <td style="vertical-align:top">{@link Calendar#DAY_OF_WEEK}</td>
+ * <td style="vertical-align:top">{@link Calendar#SUNDAY} to {@link Calendar#SATURDAY}</td>
* <td>Day-of-week numbering is 1-based starting from Sunday (i.e., 1 - Sunday,
* ..., 7 - Saturday).</td>
* </tr>
* <tr>
- * <td valign="top">{@link Calendar#AM_PM}</td>
- * <td valign="top">{@link Calendar#AM} to {@link Calendar#PM}</td>
+ * <td style="vertical-align:top">{@link Calendar#AM_PM}</td>
+ * <td style="vertical-align:top">{@link Calendar#AM} to {@link Calendar#PM}</td>
* <td>0 - AM, 1 - PM</td>
* </tr>
* </tbody>
@@ -82,7 +82,7 @@
*
* <p style="margin-top:20px">The following are calendar-specific fields and their values to be supported.
*
- * <table class="plain" style="border-bottom:1px solid">
+ * <table class="plain">
* <caption style="display:none">Calendar type and field values</caption>
* <thead>
* <tr>
@@ -94,8 +94,8 @@
* </thead>
* <tbody>
* <tr>
- * <td rowspan="2" valign="top">{@code "gregory"}</td>
- * <td rowspan="2" valign="top">{@link Calendar#ERA}</td>
+ * <td rowspan="2" style="vertical-align:top">{@code "gregory"}</td>
+ * <td rowspan="2" style="vertical-align:top">{@link Calendar#ERA}</td>
* <td>0</td>
* <td>{@link java.util.GregorianCalendar#BC} (BCE)</td>
* </tr>
@@ -104,8 +104,8 @@
* <td>{@link java.util.GregorianCalendar#AD} (CE)</td>
* </tr>
* <tr>
- * <td rowspan="2" valign="top">{@code "buddhist"}</td>
- * <td rowspan="2" valign="top">{@link Calendar#ERA}</td>
+ * <td rowspan="2" style="vertical-align:top">{@code "buddhist"}</td>
+ * <td rowspan="2" style="vertical-align:top">{@link Calendar#ERA}</td>
* <td>0</td>
* <td>BC (BCE)</td>
* </tr>
@@ -114,8 +114,8 @@
* <td>B.E. (Buddhist Era)</td>
* </tr>
* <tr>
- * <td rowspan="6" valign="top">{@code "japanese"}</td>
- * <td rowspan="5" valign="top">{@link Calendar#ERA}</td>
+ * <td rowspan="6" style="vertical-align:top">{@code "japanese"}</td>
+ * <td rowspan="5" style="vertical-align:top">{@link Calendar#ERA}</td>
* <td>0</td>
* <td>Seireki (Before Meiji)</td>
* </tr>
@@ -144,8 +144,8 @@
* Year representation in {@code SimpleDateFormat}</a>.</td>
* </tr>
* <tr>
- * <td rowspan="2" valign="top">{@code "roc"}</td>
- * <td rowspan="2" valign="top">{@link Calendar#ERA}</td>
+ * <td rowspan="2" style="vertical-align:top">{@code "roc"}</td>
+ * <td rowspan="2" style="vertical-align:top">{@link Calendar#ERA}</td>
* <td>0</td>
* <td>Before R.O.C.</td>
* </tr>
@@ -154,8 +154,8 @@
* <td>R.O.C.</td>
* </tr>
* <tr>
- * <td rowspan="2" valign="top">{@code "islamic"}</td>
- * <td rowspan="2" valign="top">{@link Calendar#ERA}</td>
+ * <td rowspan="2" style="vertical-align:top">{@code "islamic"}</td>
+ * <td rowspan="2" style="vertical-align:top">{@link Calendar#ERA}</td>
* <td>0</td>
* <td>Before AH</td>
* </tr>
--- a/jdk/src/java.base/share/classes/java/util/zip/Adler32.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/Adler32.java Thu Jun 01 18:48:56 2017 +0000
@@ -39,6 +39,7 @@
* a {@link NullPointerException} to be thrown.</p>
*
* @author David Connelly
+ * @since 1.1
*/
public
class Adler32 implements Checksum {
--- a/jdk/src/java.base/share/classes/java/util/zip/CRC32.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/CRC32.java Thu Jun 01 18:48:56 2017 +0000
@@ -38,6 +38,7 @@
* a {@link NullPointerException} to be thrown.</p>
*
* @author David Connelly
+ * @since 1.1
*/
public
class CRC32 implements Checksum {
--- a/jdk/src/java.base/share/classes/java/util/zip/CheckedInputStream.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/CheckedInputStream.java Thu Jun 01 18:48:56 2017 +0000
@@ -35,6 +35,7 @@
*
* @see Checksum
* @author David Connelly
+ * @since 1.1
*/
public
class CheckedInputStream extends FilterInputStream {
--- a/jdk/src/java.base/share/classes/java/util/zip/CheckedOutputStream.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/CheckedOutputStream.java Thu Jun 01 18:48:56 2017 +0000
@@ -36,6 +36,7 @@
*
* @see Checksum
* @author David Connelly
+ * @since 1.1
*/
public
class CheckedOutputStream extends FilterOutputStream {
--- a/jdk/src/java.base/share/classes/java/util/zip/Checksum.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/Checksum.java Thu Jun 01 18:48:56 2017 +0000
@@ -30,6 +30,7 @@
* An interface representing a data checksum.
*
* @author David Connelly
+ * @since 1.1
*/
public interface Checksum {
--- a/jdk/src/java.base/share/classes/java/util/zip/DataFormatException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/DataFormatException.java Thu Jun 01 18:48:56 2017 +0000
@@ -29,6 +29,7 @@
* Signals that a data format error has occurred.
*
* @author David Connelly
+ * @since 1.1
*/
public
class DataFormatException extends Exception {
--- a/jdk/src/java.base/share/classes/java/util/zip/Deflater.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/Deflater.java Thu Jun 01 18:48:56 2017 +0000
@@ -69,6 +69,7 @@
*
* @see Inflater
* @author David Connelly
+ * @since 1.1
*/
public
class Deflater {
--- a/jdk/src/java.base/share/classes/java/util/zip/DeflaterOutputStream.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/DeflaterOutputStream.java Thu Jun 01 18:48:56 2017 +0000
@@ -37,6 +37,7 @@
*
* @see Deflater
* @author David Connelly
+ * @since 1.1
*/
public
class DeflaterOutputStream extends FilterOutputStream {
--- a/jdk/src/java.base/share/classes/java/util/zip/GZIPInputStream.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/GZIPInputStream.java Thu Jun 01 18:48:56 2017 +0000
@@ -38,6 +38,7 @@
*
* @see InflaterInputStream
* @author David Connelly
+ * @since 1.1
*
*/
public
--- a/jdk/src/java.base/share/classes/java/util/zip/GZIPOutputStream.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/GZIPOutputStream.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,7 @@
* This class implements a stream filter for writing compressed data in
* the GZIP file format.
* @author David Connelly
+ * @since 1.1
*
*/
public
--- a/jdk/src/java.base/share/classes/java/util/zip/Inflater.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/Inflater.java Thu Jun 01 18:48:56 2017 +0000
@@ -68,6 +68,7 @@
*
* @see Deflater
* @author David Connelly
+ * @since 1.1
*
*/
public
--- a/jdk/src/java.base/share/classes/java/util/zip/InflaterInputStream.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/InflaterInputStream.java Thu Jun 01 18:48:56 2017 +0000
@@ -37,6 +37,7 @@
*
* @see Inflater
* @author David Connelly
+ * @since 1.1
*/
public
class InflaterInputStream extends FilterInputStream {
--- a/jdk/src/java.base/share/classes/java/util/zip/ZipConstants.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/ZipConstants.java Thu Jun 01 18:48:56 2017 +0000
@@ -30,6 +30,7 @@
* which manipulate ZIP files.
*
* @author David Connelly
+ * @since 1.1
*/
interface ZipConstants {
/*
--- a/jdk/src/java.base/share/classes/java/util/zip/ZipEntry.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/ZipEntry.java Thu Jun 01 18:48:56 2017 +0000
@@ -39,6 +39,7 @@
* This class is used to represent a ZIP file entry.
*
* @author David Connelly
+ * @since 1.1
*/
public
class ZipEntry implements ZipConstants, Cloneable {
--- a/jdk/src/java.base/share/classes/java/util/zip/ZipFile.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/ZipFile.java Thu Jun 01 18:48:56 2017 +0000
@@ -70,6 +70,7 @@
* thrown.
*
* @author David Connelly
+ * @since 1.1
*/
public
class ZipFile implements ZipConstants, Closeable {
--- a/jdk/src/java.base/share/classes/java/util/zip/ZipInputStream.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/ZipInputStream.java Thu Jun 01 18:48:56 2017 +0000
@@ -40,6 +40,7 @@
* entries.
*
* @author David Connelly
+ * @since 1.1
*/
public
class ZipInputStream extends InflaterInputStream implements ZipConstants {
--- a/jdk/src/java.base/share/classes/java/util/zip/ZipOutputStream.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/ZipOutputStream.java Thu Jun 01 18:48:56 2017 +0000
@@ -41,6 +41,7 @@
* entries.
*
* @author David Connelly
+ * @since 1.1
*/
public
class ZipOutputStream extends DeflaterOutputStream implements ZipConstants {
--- a/jdk/src/java.base/share/classes/java/util/zip/package-info.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/util/zip/package-info.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,13 +37,13 @@
* Info-ZIP Application Note 970311</a> - a detailed description of
* the Info-ZIP format upon which the {@code java.util.zip} classes
* are based.
- * <li><a name="zip64">An implementation may optionally support the
+ * <li><a id="zip64">An implementation may optionally support the
* ZIP64(tm) format extensions defined by the</a>
* <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">
* PKWARE ZIP File Format Specification</a>. The ZIP64(tm) format
* extensions are used to overcome the size limitations of the
* original ZIP format.
- * <li><a name="lang_encoding">APPENDIX D of</a>
+ * <li><a id="lang_encoding">APPENDIX D of</a>
* <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">
* PKWARE ZIP File Format Specification</a> - Language Encoding Flag
* (EFS) to encode ZIP entry filename and comment fields using UTF-8.
--- a/jdk/src/java.base/share/classes/javax/crypto/KeyGenerator.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/crypto/KeyGenerator.java Thu Jun 01 18:48:56 2017 +0000
@@ -83,6 +83,15 @@
* <p>In case the client does not explicitly initialize the KeyGenerator
* (via a call to an {@code init} method), each provider must
* supply (and document) a default initialization.
+ * See the Keysize Restriction sections of the
+ * <a href="{@docRoot}/../technotes/guides/security/SunProviders.html">
+ * JDK Providers</a>
+ * document for information on the KeyGenerator defaults used by
+ * JDK providers.
+ * However, note that defaults may vary across different providers.
+ * Additionally, the default value for a provider may change in a future
+ * version. Therefore, it is recommended to explicitly initialize the
+ * KeyGenerator instead of relying on provider-specific defaults.
*
* <p> Every implementation of the Java platform is required to support the
* following standard {@code KeyGenerator} algorithms with the keysizes in
--- a/jdk/src/java.base/share/classes/javax/crypto/KeyGeneratorSpi.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/crypto/KeyGeneratorSpi.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,19 @@
* cryptographic service provider who wishes to supply the implementation
* of a key generator for a particular algorithm.
*
+ * <p>In case the client does not explicitly initialize the KeyGenerator
+ * (via a call to an {@code init} method), each provider must
+ * supply (and document) a default initialization.
+ * See the Keysize Restriction sections of the
+ * <a href="{@docRoot}/../technotes/guides/security/SunProviders.html">
+ * JDK Providers</a>
+ * document for information on the KeyGenerator defaults used by
+ * JDK providers.
+ * However, note that defaults may vary across different providers.
+ * Additionally, the default value for a provider may change in a future
+ * version. Therefore, it is recommended to explicitly initialize the
+ * KeyGenerator instead of relying on provider-specific defaults.
+ *
* @author Jan Luehe
*
* @see SecretKey
--- a/jdk/src/java.base/share/classes/javax/security/auth/AuthPermission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/AuthPermission.java Thu Jun 01 18:48:56 2017 +0000
@@ -139,6 +139,7 @@
* @implNote
* Implementations may define additional target names, but should use naming
* conventions such as reverse domain name notation to avoid name clashes.
+ * @since 1.4
*/
public final class AuthPermission extends
java.security.BasicPermission {
--- a/jdk/src/java.base/share/classes/javax/security/auth/DestroyFailedException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/DestroyFailedException.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,7 @@
* the {@code Destroyable} interface when the {@code destroy}
* method fails.
*
+ * @since 1.4
*/
public class DestroyFailedException extends Exception {
--- a/jdk/src/java.base/share/classes/javax/security/auth/Destroyable.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/Destroyable.java Thu Jun 01 18:48:56 2017 +0000
@@ -29,6 +29,7 @@
* Objects such as credentials may optionally implement this interface
* to provide the capability to destroy its contents.
*
+ * @since 1.4
* @see javax.security.auth.Subject
*/
public interface Destroyable {
--- a/jdk/src/java.base/share/classes/javax/security/auth/Policy.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/Policy.java Thu Jun 01 18:48:56 2017 +0000
@@ -153,6 +153,7 @@
* These two APIs provide callers the means to query the
* Policy for Principal-based Permission entries.
*
+ * @since 1.4
* @see java.security.Security security properties
*/
@Deprecated(since="1.4")
--- a/jdk/src/java.base/share/classes/javax/security/auth/PrivateCredentialPermission.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/PrivateCredentialPermission.java Thu Jun 01 18:48:56 2017 +0000
@@ -100,6 +100,7 @@
* "a.b.Principal" with the name, "duke", and "c.d.Principal", with the name,
* "dukette".
*
+ * @since 1.4
*/
public final class PrivateCredentialPermission extends Permission {
--- a/jdk/src/java.base/share/classes/javax/security/auth/RefreshFailedException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/RefreshFailedException.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,7 @@
* the {@code Refreshable} interface when the {@code refresh}
* method fails.
*
+ * @since 1.4
*/
public class RefreshFailedException extends Exception {
--- a/jdk/src/java.base/share/classes/javax/security/auth/Refreshable.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/Refreshable.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,7 @@
* may implement this interface to allow callers to refresh the time period
* for which it is valid.
*
+ * @since 1.4
* @see javax.security.auth.Subject
*/
public interface Refreshable {
--- a/jdk/src/java.base/share/classes/javax/security/auth/Subject.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/Subject.java Thu Jun 01 18:48:56 2017 +0000
@@ -94,6 +94,7 @@
* {@code Principal} implementations associated with Subjects
* must implement {@code Serializable}.
*
+ * @since 1.4
* @see java.security.Principal
* @see java.security.DomainCombiner
*/
--- a/jdk/src/java.base/share/classes/javax/security/auth/SubjectDomainCombiner.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/SubjectDomainCombiner.java Thu Jun 01 18:48:56 2017 +0000
@@ -43,6 +43,7 @@
* with Principals from the {@code Subject} associated with this
* {@code SubjectDomainCombiner}.
*
+ * @since 1.4
*/
public class SubjectDomainCombiner implements java.security.DomainCombiner {
--- a/jdk/src/java.base/share/classes/javax/security/auth/callback/Callback.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/callback/Callback.java Thu Jun 01 18:48:56 2017 +0000
@@ -40,6 +40,7 @@
* if appropriate, to return requested information back to the
* underlying security services.
*
+ * @since 1.4
* @see javax.security.auth.callback.CallbackHandler
* @see javax.security.auth.callback.ChoiceCallback
* @see javax.security.auth.callback.ConfirmationCallback
--- a/jdk/src/java.base/share/classes/javax/security/auth/callback/CallbackHandler.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/callback/CallbackHandler.java Thu Jun 01 18:48:56 2017 +0000
@@ -63,6 +63,7 @@
* <p> All default handler implementations must provide a public
* zero-argument constructor.
*
+ * @since 1.4
* @see java.security.Security security properties
*/
public interface CallbackHandler {
--- a/jdk/src/java.base/share/classes/javax/security/auth/callback/ChoiceCallback.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/callback/ChoiceCallback.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* method of a {@code CallbackHandler} to display a list of choices
* and to retrieve the selected choice(s).
*
+ * @since 1.4
* @see javax.security.auth.callback.CallbackHandler
*/
public class ChoiceCallback implements Callback, java.io.Serializable {
--- a/jdk/src/java.base/share/classes/javax/security/auth/callback/ConfirmationCallback.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/callback/ConfirmationCallback.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* method of a {@code CallbackHandler} to ask for YES/NO,
* OK/CANCEL, YES/NO/CANCEL or other similar confirmations.
*
+ * @since 1.4
* @see javax.security.auth.callback.CallbackHandler
*/
public class ConfirmationCallback implements Callback, java.io.Serializable {
--- a/jdk/src/java.base/share/classes/javax/security/auth/callback/LanguageCallback.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/callback/LanguageCallback.java Thu Jun 01 18:48:56 2017 +0000
@@ -33,6 +33,7 @@
* method of a {@code CallbackHandler} to retrieve the {@code Locale}
* used for localizing text.
*
+ * @since 1.4
* @see javax.security.auth.callback.CallbackHandler
*/
public class LanguageCallback implements Callback, java.io.Serializable {
--- a/jdk/src/java.base/share/classes/javax/security/auth/callback/NameCallback.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/callback/NameCallback.java Thu Jun 01 18:48:56 2017 +0000
@@ -30,6 +30,7 @@
* {@code NameCallback} to the {@code handle}
* method of a {@code CallbackHandler} to retrieve name information.
*
+ * @since 1.4
* @see javax.security.auth.callback.CallbackHandler
*/
public class NameCallback implements Callback, java.io.Serializable {
--- a/jdk/src/java.base/share/classes/javax/security/auth/callback/PasswordCallback.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/callback/PasswordCallback.java Thu Jun 01 18:48:56 2017 +0000
@@ -30,6 +30,7 @@
* {@code PasswordCallback} to the {@code handle}
* method of a {@code CallbackHandler} to retrieve password information.
*
+ * @since 1.4
* @see javax.security.auth.callback.CallbackHandler
*/
public class PasswordCallback implements Callback, java.io.Serializable {
--- a/jdk/src/java.base/share/classes/javax/security/auth/callback/TextInputCallback.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/callback/TextInputCallback.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* method of a {@code CallbackHandler} to retrieve generic text
* information.
*
+ * @since 1.4
* @see javax.security.auth.callback.CallbackHandler
*/
public class TextInputCallback implements Callback, java.io.Serializable {
--- a/jdk/src/java.base/share/classes/javax/security/auth/callback/TextOutputCallback.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/callback/TextOutputCallback.java Thu Jun 01 18:48:56 2017 +0000
@@ -31,6 +31,7 @@
* method of a {@code CallbackHandler} to display information messages,
* warning messages and error messages.
*
+ * @since 1.4
* @see javax.security.auth.callback.CallbackHandler
*/
public class TextOutputCallback implements Callback, java.io.Serializable {
--- a/jdk/src/java.base/share/classes/javax/security/auth/callback/UnsupportedCallbackException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/callback/UnsupportedCallbackException.java Thu Jun 01 18:48:56 2017 +0000
@@ -29,6 +29,7 @@
* Signals that a {@code CallbackHandler} does not
* recognize a particular {@code Callback}.
*
+ * @since 1.4
*/
public class UnsupportedCallbackException extends Exception {
--- a/jdk/src/java.base/share/classes/javax/security/auth/login/AccountExpiredException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/login/AccountExpiredException.java Thu Jun 01 18:48:56 2017 +0000
@@ -35,6 +35,7 @@
* throws this exception to notify the application. The application can
* then take the appropriate steps to notify the user.
*
+ * @since 1.4
*/
public class AccountExpiredException extends AccountException {
--- a/jdk/src/java.base/share/classes/javax/security/auth/login/AppConfigurationEntry.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/login/AppConfigurationEntry.java Thu Jun 01 18:48:56 2017 +0000
@@ -39,6 +39,7 @@
* options. Please refer to the {@code Configuration} class for
* more information on the different control flags and their semantics.
*
+ * @since 1.4
* @see javax.security.auth.login.Configuration
*/
public class AppConfigurationEntry {
--- a/jdk/src/java.base/share/classes/javax/security/auth/login/Configuration.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/login/Configuration.java Thu Jun 01 18:48:56 2017 +0000
@@ -182,6 +182,7 @@
* Java Security Standard Algorithm Names Specification</a>
* for a list of standard Configuration types.
*
+ * @since 1.4
* @see javax.security.auth.login.LoginContext
* @see java.security.Security security properties
*/
--- a/jdk/src/java.base/share/classes/javax/security/auth/login/CredentialExpiredException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/login/CredentialExpiredException.java Thu Jun 01 18:48:56 2017 +0000
@@ -37,6 +37,7 @@
* the application. The application can then take the appropriate
* steps to assist the user in updating the password.
*
+ * @since 1.4
*/
public class CredentialExpiredException extends CredentialException {
--- a/jdk/src/java.base/share/classes/javax/security/auth/login/FailedLoginException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/login/FailedLoginException.java Thu Jun 01 18:48:56 2017 +0000
@@ -32,6 +32,7 @@
* For example, a {@code LoginModule} throws this exception if
* the user entered an incorrect password.
*
+ * @since 1.4
*/
public class FailedLoginException extends LoginException {
--- a/jdk/src/java.base/share/classes/javax/security/auth/login/LoginContext.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/login/LoginContext.java Thu Jun 01 18:48:56 2017 +0000
@@ -182,6 +182,7 @@
* </ul>
* </ol>
*
+ * @since 1.4
* @see java.security.Security
* @see javax.security.auth.AuthPermission
* @see javax.security.auth.Subject
--- a/jdk/src/java.base/share/classes/javax/security/auth/login/LoginException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/login/LoginException.java Thu Jun 01 18:48:56 2017 +0000
@@ -28,6 +28,7 @@
/**
* This is the basic login exception.
*
+ * @since 1.4
* @see javax.security.auth.login.LoginContext
*/
--- a/jdk/src/java.base/share/classes/javax/security/auth/spi/LoginModule.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/spi/LoginModule.java Thu Jun 01 18:48:56 2017 +0000
@@ -122,6 +122,7 @@
* no arguments. This allows classes which load the {@code LoginModule}
* to instantiate it.
*
+ * @since 1.4
* @see javax.security.auth.login.LoginContext
* @see javax.security.auth.login.Configuration
*/
--- a/jdk/src/java.base/share/classes/javax/security/auth/x500/X500PrivateCredential.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.base/share/classes/javax/security/auth/x500/X500PrivateCredential.java Thu Jun 01 18:48:56 2017 +0000
@@ -36,6 +36,7 @@
* This enables looking up the private credentials for an X.500 principal
* in a subject.
*
+ * @since 1.4
*/
public final class X500PrivateCredential implements Destroyable {
private X509Certificate cert;
--- a/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/Clipboard.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/Clipboard.java Thu Jun 01 18:48:56 2017 +0000
@@ -48,6 +48,7 @@
*
* @author Amy Fowler
* @author Alexander Gerasimov
+ * @since 1.1
*/
public class Clipboard {
--- a/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/ClipboardOwner.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/ClipboardOwner.java Thu Jun 01 18:48:56 2017 +0000
@@ -39,6 +39,7 @@
* @see java.awt.datatransfer.Clipboard
*
* @author Amy Fowler
+ * @since 1.1
*/
public interface ClipboardOwner {
--- a/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/DataFlavor.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/DataFlavor.java Thu Jun 01 18:48:56 2017 +0000
@@ -112,6 +112,7 @@
* @author Blake Sullivan
* @author Laurence P. G. Cable
* @author Jeff Dunn
+ * @since 1.1
*/
public class DataFlavor implements Externalizable, Cloneable {
--- a/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/StringSelection.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/StringSelection.java Thu Jun 01 18:48:56 2017 +0000
@@ -39,6 +39,7 @@
* and all equivalent flavors is <b>deprecated</b>. No other
* <code>DataFlavor</code>s are supported.
*
+ * @since 1.1
* @see java.awt.datatransfer.DataFlavor#stringFlavor
* @see java.awt.datatransfer.DataFlavor#plainTextFlavor
*/
--- a/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/Transferable.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/Transferable.java Thu Jun 01 18:48:56 2017 +0000
@@ -37,6 +37,7 @@
* a section in <em>The Java Tutorial</em>, for more information.
*
* @author Amy Fowler
+ * @since 1.1
*/
public interface Transferable {
--- a/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/UnsupportedFlavorException.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.datatransfer/share/classes/java/awt/datatransfer/UnsupportedFlavorException.java Thu Jun 01 18:48:56 2017 +0000
@@ -30,6 +30,7 @@
* @see Transferable#getTransferData
*
* @author Amy Fowler
+ * @since 1.1
*/
public class UnsupportedFlavorException extends Exception {
--- a/jdk/src/java.rmi/share/classes/sun/rmi/registry/RegistryImpl.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/src/java.rmi/share/classes/sun/rmi/registry/RegistryImpl.java Thu Jun 01 18:48:56 2017 +0000
@@ -102,10 +102,10 @@
private static final String REGISTRY_FILTER_PROPNAME = "sun.rmi.registry.registryFilter";
/** Registry max depth of remote invocations. **/
- private static int REGISTRY_MAX_DEPTH = 5;
+ private static final int REGISTRY_MAX_DEPTH = 20;
/** Registry maximum array size in remote invocations. **/
- private static int REGISTRY_MAX_ARRAY_SIZE = 10000;
+ private static final int REGISTRY_MAX_ARRAY_SIZE = 10000;
/**
* The registryFilter created from the value of the {@code "sun.rmi.registry.registryFilter"}
--- a/jdk/test/java/rmi/registry/serialFilter/RegistryFilterTest.java Thu Jun 01 18:26:35 2017 +0000
+++ b/jdk/test/java/rmi/registry/serialFilter/RegistryFilterTest.java Thu Jun 01 18:48:56 2017 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -21,24 +21,18 @@
* questions.
*/
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.ObjectOutputStream;
import java.io.Serializable;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
+import java.rmi.AlreadyBoundException;
import java.rmi.MarshalledObject;
import java.rmi.NotBoundException;
import java.rmi.Remote;
import java.rmi.RemoteException;
-import java.rmi.AlreadyBoundException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
+import java.security.Security;
import java.util.Objects;
-import java.security.Security;
import org.testng.Assert;
import org.testng.TestNG;
@@ -57,7 +51,8 @@
* @summary Test filters for the RMI Registry
* @run testng/othervm RegistryFilterTest
* @run testng/othervm
- * -Dsun.rmi.registry.registryFilter=!java.lang.Long;!RegistryFilterTest$RejectableClass
+ * -Dsun.rmi.registry.registryFilter=!java.lang.Long;!RegistryFilterTest$RejectableClass;maxdepth=19
+ * -Dtest.maxdepth=19
* RegistryFilterTest
* @run testng/othervm/policy=security.policy
* -Djava.security.properties=${test.src}/java.security-extra1
@@ -68,6 +63,8 @@
private static int port;
private static Registry registry;
+ static final int REGISTRY_MAX_DEPTH = 20;
+
static final int REGISTRY_MAX_ARRAY = 10000;
static final String registryFilter =
@@ -125,7 +122,7 @@
/*
- * Test registry rejects an object with the max array size + 1.
+ * Test registry rejects an object with the max array size + 1.
*/
@Test(dataProvider="bindData")
public void simpleBind(String name, Remote obj, boolean blacklisted) throws RemoteException, AlreadyBoundException, NotBoundException {
@@ -139,9 +136,9 @@
}
/*
- * Test registry rejects an object with a well known class
- * if blacklisted in the security properties.
- */
+ * Test registry rejects an object with a well known class
+ * if blacklisted in the security properties.
+ */
@Test
public void simpleRejectableClass() throws RemoteException, AlreadyBoundException, NotBoundException {
RejectableClass r1 = null;
@@ -150,9 +147,46 @@
r1 = new RejectableClass();
registry.bind(name, r1);
registry.unbind(name);
- Assert.assertNull(registryFilter, "Registry filter should not have rejected");
+ Assert.assertNull(registryFilter, "Registry filter should have rejected");
+ } catch (Exception rex) {
+ Assert.assertNotNull(registryFilter, "Registry filter should not have rejected");
+ }
+ }
+
+ /*
+ * Test registry does not reject an object with depth at the built-in limit.
+ */
+ @Test
+ public void simpleDepthBuiltinNonRejectable() throws RemoteException, AlreadyBoundException, NotBoundException {
+ int depthOverride = Integer.getInteger("test.maxdepth", REGISTRY_MAX_DEPTH);
+ depthOverride = Math.min(depthOverride, REGISTRY_MAX_DEPTH);
+ System.out.printf("overrideDepth: %d, filter: %s%n", depthOverride, registryFilter);
+ try {
+ String name = "reject2";
+ DepthRejectableClass r1 = DepthRejectableClass.create(depthOverride);
+ registry.bind(name, r1);
+ registry.unbind(name);
} catch (Exception rex) {
- Assert.assertNotNull(registryFilter, "Registry filter should have rejected");
+ Assert.fail("Registry filter should not have rejected depth: "
+ + depthOverride);
+ }
+ }
+
+ /*
+ * Test registry rejects an object with depth at the limit + 1.
+ */
+ @Test
+ public void simpleDepthRejectable() throws RemoteException, AlreadyBoundException, NotBoundException {
+ int depthOverride = Integer.getInteger("test.maxdepth", REGISTRY_MAX_DEPTH);
+ depthOverride = Math.min(depthOverride, REGISTRY_MAX_DEPTH);
+ System.out.printf("overrideDepth: %d, filter: %s%n", depthOverride, registryFilter);
+ try {
+ String name = "reject3";
+ DepthRejectableClass r1 = DepthRejectableClass.create(depthOverride + 1);
+ registry.bind(name, r1);
+ Assert.fail("Registry filter should have rejected depth: " + depthOverride + 1);
+ } catch (Exception rex) {
+ // Rejection expected
}
}
@@ -173,6 +207,7 @@
return super.toString() + "//" + Objects.toString(obj);
}
}
+
/**
* A simple Serializable Remote object that is passed by value.
* It and its contents are checked by the Registry serial filter.
@@ -183,4 +218,25 @@
RejectableClass() {}
}
+ /**
+ * A simple Serializable Remote object that is passed by value.
+ * It and its contents are checked by the Registry serial filter.
+ */
+ static class DepthRejectableClass implements Serializable, Remote {
+ private static final long serialVersionUID = 362498820763181264L;
+ private final DepthRejectableClass next;
+
+ private DepthRejectableClass(DepthRejectableClass next) {
+ this.next = next;
+ }
+
+ static DepthRejectableClass create(int depth) {
+ DepthRejectableClass next = new DepthRejectableClass(null);
+ for (int i = 1; i < depth; i++) {
+ next = new DepthRejectableClass(next);
+ }
+ return next;
+ }
+ }
+
}