--- old/src/java.base/share/classes/java/io/RandomAccessFile.java 2017-07-11 14:33:38.728339544 -0700 +++ new/src/java.base/share/classes/java/io/RandomAccessFile.java 2017-07-11 14:33:38.528330818 -0700 @@ -139,21 +139,21 @@ * * * - * + * * * - * + * * - * + * * - * + * * - * + * * --- old/src/java.base/share/classes/java/io/SerializablePermission.java 2017-07-11 14:33:39.256362584 -0700 +++ new/src/java.base/share/classes/java/io/SerializablePermission.java 2017-07-11 14:33:39.056353857 -0700 @@ -48,15 +48,15 @@ * * * - * - * - * + * + * + * * * * * * - * + * * @@ -69,7 +69,7 @@ * * * - * + * * * * * - * + * * * --- old/src/java.base/share/classes/java/lang/RuntimePermission.java 2017-07-11 14:33:39.772385099 -0700 +++ new/src/java.base/share/classes/java/lang/RuntimePermission.java 2017-07-11 14:33:39.568376198 -0700 @@ -48,15 +48,15 @@ * what the target allows, and associated risks * * - * - * - * + * + * + * * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * * - * + * * * * * - * + * * * * * * - * + * * * * * - * + * * * * * - * + * * * * * * - * + * * * * * - * + * * * * * - * + * * * * - * + * * * * * - * + * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * @@ -255,7 +255,7 @@ * * * - * + * * @@ -267,7 +267,7 @@ * * * - * + * * @@ -277,7 +277,7 @@ * * * - * + * * * * * - * + * * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * - * + * * * * * * - * + * * * * - * + * * * * - * + * * * --- old/src/java.base/share/classes/java/lang/System.java 2017-07-11 14:33:40.300408139 -0700 +++ new/src/java.base/share/classes/java/lang/System.java 2017-07-11 14:33:40.096399237 -0700 @@ -582,67 +582,67 @@ *
Access mode permitted values and meanings
ValueMeaning
ValueMeaning
{@code "r"}
{@code "r"} Open for reading only. Invoking any of the {@code write} * methods of the resulting object will cause an * {@link java.io.IOException} to be thrown.
{@code "rw"}
{@code "rw"} Open for reading and writing. If the file does not already * exist then an attempt will be made to create it.
{@code "rws"}
{@code "rws"} Open for reading and writing, as with {@code "rw"}, and also * require that every update to the file's content or metadata be * written synchronously to the underlying storage device.
{@code "rwd"}
{@code "rwd"} Open for reading and writing, as with {@code "rw"}, and also * require that every update to the file's content be written * synchronously to the underlying storage device.
Permission target name, what the permission allows, and associated risks
Permission Target NameWhat the Permission AllowsRisks of Allowing this PermissionPermission Target NameWhat the Permission AllowsRisks of Allowing this Permission
enableSubclassImplementationenableSubclassImplementationSubclass implementation of ObjectOutputStream or ObjectInputStream * to override the default serialization or deserialization, respectively, * of objects
enableSubstitutionenableSubstitutionSubstitution of one object for another during * serialization or deserializationThis is dangerous because malicious code @@ -78,7 +78,7 @@ *
serialFilterserialFilterSetting a filter for ObjectInputStreams.Code could remove a configured filter and remove protections * already established.
Permission Target NameWhat the Permission AllowsRisks of Allowing this PermissionPermission Target NameWhat the Permission AllowsRisks of Allowing this Permission
createClassLoadercreateClassLoaderCreation of a class loaderThis is an extremely dangerous permission to grant. * Malicious applications that can instantiate their own class @@ -67,7 +67,7 @@ *
getClassLoadergetClassLoaderRetrieval of a class loader (e.g., the class loader for the calling * class)This would grant an attacker permission to get the @@ -78,7 +78,7 @@ *
setContextClassLoadersetContextClassLoaderSetting of the context class loader used by a threadThe context class loader is used by system code and extensions * when they need to lookup resources that might not exist in the system @@ -88,7 +88,7 @@ *
enableContextClassLoaderOverrideenableContextClassLoaderOverrideSubclass implementation of the thread context class loader methodsThe context class loader is used by system code and extensions * when they need to lookup resources that might not exist in the system @@ -98,14 +98,14 @@ *
closeClassLoadercloseClassLoaderClosing of a ClassLoaderGranting this permission allows code to close any URLClassLoader * that it has a reference to.
setSecurityManagersetSecurityManagerSetting of the security manager (possibly replacing an existing one) * The security manager is a class that allows @@ -117,14 +117,14 @@ *
createSecurityManagercreateSecurityManagerCreation of a new security managerThis gives code access to protected, sensitive methods that may * disclose information about other classes or the execution stack.
getenv.{variable name}getenv.{variable name}Reading of the value of the specified environment variableThis would allow code to read the value, or determine the * existence, of a particular environment variable. This is @@ -132,7 +132,7 @@ *
exitVM.{exit status}exitVM.{exit status}Halting of the Java Virtual Machine with the specified exit statusThis allows an attacker to mount a denial-of-service attack * by automatically forcing the virtual machine to halt. @@ -143,14 +143,14 @@ *
shutdownHooksshutdownHooksRegistration and cancellation of virtual-machine shutdown hooksThis allows an attacker to register a malicious shutdown * hook that interferes with the clean shutdown of the virtual machine.
setFactorysetFactorySetting of the socket factory used by ServerSocket or Socket, * or of the stream handler factory used by URLThis allows code to set the actual implementation @@ -160,7 +160,7 @@ *
setIOsetIOSetting of System.out, System.in, and System.errThis allows changing the value of the standard system streams. * An attacker may change System.in to monitor and @@ -169,7 +169,7 @@ *
modifyThreadmodifyThreadModification of threads, e.g., via calls to Thread * {@code interrupt, stop, suspend, resume, setDaemon, setPriority, * setName} and {@code setUncaughtExceptionHandler} @@ -179,7 +179,7 @@ *
stopThreadstopThreadStopping of threads via calls to the Thread stop * methodThis allows code to stop any thread in the system provided that it is @@ -189,7 +189,7 @@ *
modifyThreadGroupmodifyThreadGroupmodification of thread groups, e.g., via calls to ThreadGroup * destroy, getParent, resume, * setDaemon, setMaxPriority, stop, @@ -199,7 +199,7 @@ *
getProtectionDomaingetProtectionDomainRetrieval of the ProtectionDomain for a classThis allows code to obtain policy information * for a particular code source. While obtaining policy information @@ -209,7 +209,7 @@ *
getFileSystemAttributesgetFileSystemAttributesRetrieval of file system attributesThis allows code to obtain file system information such as disk usage * or disk space available to the caller. This is potentially dangerous @@ -219,7 +219,7 @@ *
readFileDescriptorreadFileDescriptorReading of file descriptorsThis would allow code to read the particular file associated * with the file descriptor read. This is dangerous if the file @@ -227,7 +227,7 @@ *
writeFileDescriptorwriteFileDescriptorWriting to file descriptorsThis allows code to write to a particular file associated * with the descriptor. This is dangerous because it may allow @@ -236,7 +236,7 @@ *
loadLibrary.{library name}loadLibrary.{library name}Dynamic linking of the specified libraryIt is dangerous to allow an applet permission to load native code * libraries, because the Java security architecture is not designed to and @@ -244,7 +244,7 @@ *
accessClassInPackage.{package name}accessClassInPackage.{package name}Access to the specified package via a class loader's * loadClass method when that class loader calls * the SecurityManager checkPackageAccess method
defineClassInPackage.{package name}defineClassInPackage.{package name}Definition of classes in the specified package, via a class * loader's defineClass method when that class loader calls * the SecurityManager checkPackageDefinition method.
defineClassdefineClassDefine a class with * {@link java.lang.invoke.MethodHandles.Lookup#defineClass(byte[]) * Lookup.defineClass}.
accessDeclaredMembersaccessDeclaredMembersAccess to the declared members of a classThis grants code permission to query a class for its public, * protected, default (package) access, and private fields and/or @@ -295,14 +295,14 @@
queuePrintJobqueuePrintJobInitiation of a print job requestThis could print sensitive information to a printer, * or simply waste paper.
getStackTracegetStackTraceRetrieval of the stack trace information of another thread.This allows retrieval of the stack trace information of * another thread. This might allow malicious code to monitor the @@ -310,7 +310,7 @@ *
getStackWalkerWithClassReferencegetStackWalkerWithClassReferenceGet a stack walker that can retrieve stack frames with class reference.This allows retrieval of Class objects from stack walking. * This might allow malicious code to access Class objects on the stack @@ -318,7 +318,7 @@ *
setDefaultUncaughtExceptionHandlersetDefaultUncaughtExceptionHandlerSetting the default handler to be used when a thread * terminates abruptly due to an uncaught exceptionThis allows an attacker to register a malicious @@ -327,7 +327,7 @@ *
preferencespreferencesRepresents the permission required to get access to the * java.util.prefs.Preferences implementations user or system root * which in turn allows retrieval or update operations within the @@ -340,14 +340,14 @@ *
manageProcessmanageProcessNative process termination and information about processes * {@link ProcessHandle}.Allows code to identify and terminate processes that it did not create.
localeServiceProviderlocaleServiceProviderThis {@code RuntimePermission} is required to be granted to * classes which subclass and implement * {@code java.util.spi.LocaleServiceProvider}. The permission is @@ -360,7 +360,7 @@ *
loggerFinderloggerFinderThis {@code RuntimePermission} is required to be granted to * classes which subclass or call methods on * {@code java.lang.System.LoggerFinder}. The permission is @@ -373,7 +373,7 @@ *
accessSystemModulesaccessSystemModulesAccess system modules in the runtime image.This grants the permission to access resources in the * {@linkplain ModuleFinder#ofSystem system modules} in the runtime image.
* * - * - * + * + * * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * * *
Shows property keys and associated values
KeyDescription of Associated Value
KeyDescription of Associated Value
java.version
java.versionJava Runtime Environment version which may be interpreted * as a {@link Runtime.Version}
java.vendor
java.vendorJava Runtime Environment vendor
java.vendor.url
java.vendor.urlJava vendor URL
java.home
java.homeJava installation directory
java.vm.specification.version
java.vm.specification.versionJava Virtual Machine specification version which may be * interpreted as a {@link Runtime.Version}
java.vm.specification.vendor
java.vm.specification.vendorJava Virtual Machine specification vendor
java.vm.specification.name
java.vm.specification.nameJava Virtual Machine specification name
java.vm.version
java.vm.versionJava Virtual Machine implementation version which may be * interpreted as a {@link Runtime.Version}
java.vm.vendor
java.vm.vendorJava Virtual Machine implementation vendor
java.vm.name
java.vm.nameJava Virtual Machine implementation name
java.specification.version
java.specification.versionJava Runtime Environment specification version which may be * interpreted as a {@link Runtime.Version}
java.specification.vendor
java.specification.vendorJava Runtime Environment specification vendor
java.specification.name
java.specification.nameJava Runtime Environment specification name
java.class.version
java.class.versionJava class format version number
java.class.path
java.class.pathJava class path
java.library.path
java.library.pathList of paths to search when loading libraries
java.io.tmpdir
java.io.tmpdirDefault temp file path
java.compiler
java.compilerName of JIT compiler to use
os.name
os.nameOperating system name
os.arch
os.archOperating system architecture
os.version
os.versionOperating system version
file.separator
file.separatorFile separator ("/" on UNIX)
path.separator
path.separatorPath separator (":" on UNIX)
line.separator
line.separatorLine separator ("\n" on UNIX)
user.name
user.nameUser's account name
user.home
user.homeUser's home directory
user.dir
user.dirUser's current working directory
@@ -659,17 +659,17 @@ * * * - * - * + * + * * * - * + * * - * + * * - * + * * - * + * * * *
Shows property keys and associated values
KeyDescription of Associated Value
KeyDescription of Associated Value
{@code jdk.module.path}
{@code jdk.module.path}The application module path
{@code jdk.module.upgrade.path}
{@code jdk.module.upgrade.path}The upgrade module path
{@code jdk.module.main}
{@code jdk.module.main}The module name of the initial/main module
{@code jdk.module.main.class}
{@code jdk.module.main.class}The main class name of the initial module
--- old/src/java.base/share/classes/java/lang/invoke/MethodHandleInfo.java 2017-07-11 14:33:40.872433098 -0700 +++ new/src/java.base/share/classes/java/lang/invoke/MethodHandleInfo.java 2017-07-11 14:33:40.672424371 -0700 @@ -84,43 +84,43 @@ * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/lang/invoke/MethodHandles.java 2017-07-11 14:33:41.404456312 -0700 +++ new/src/java.base/share/classes/java/lang/invoke/MethodHandles.java 2017-07-11 14:33:41.188446887 -0700 @@ -282,66 +282,66 @@ * * * - * - * - * + * + * + * * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/lang/reflect/ReflectPermission.java 2017-07-11 14:33:42.008482668 -0700 +++ new/src/java.base/share/classes/java/lang/reflect/ReflectPermission.java 2017-07-11 14:33:41.812474115 -0700 @@ -36,15 +36,15 @@ * * * - * - * - * + * + * + * * * * * * - * + * * * * - * + * * * * * - * - * - * + * + * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * * - * + * * * * * - * + * * * * * - * + * * @@ -108,7 +108,7 @@ * * * - * + * * * * * - * + * * @@ -128,7 +128,7 @@ * * * - * + * * * * * - * + * * * * * - * + * * * * * - * - * + * + * * * * * - * + * * * * - * + * *
reference kinds
reference kinddescriptive namescopememberbehavior
reference kinddescriptive namescopememberbehavior
{@code 1}{@code REF_getField}{@code class}{@code 1}{@code REF_getField}{@code class}{@code FT f;}{@code (T) this.f;}
{@code 2}{@code REF_getStatic}{@code class} or {@code interface}{@code 2}{@code REF_getStatic}{@code class} or {@code interface}{@code static}
{@code FT f;}
{@code (T) C.f;}
{@code 3}{@code REF_putField}{@code class}{@code 3}{@code REF_putField}{@code class}{@code FT f;}{@code this.f = x;}
{@code 4}{@code REF_putStatic}{@code class}{@code 4}{@code REF_putStatic}{@code class}{@code static}
{@code FT f;}
{@code C.f = arg;}
{@code 5}{@code REF_invokeVirtual}{@code class}{@code 5}{@code REF_invokeVirtual}{@code class}{@code T m(A*);}{@code (T) this.m(arg*);}
{@code 6}{@code REF_invokeStatic}{@code class} or {@code interface}{@code 6}{@code REF_invokeStatic}{@code class} or {@code interface}{@code static}
{@code T m(A*);}
{@code (T) C.m(arg*);}
{@code 7}{@code REF_invokeSpecial}{@code class} or {@code interface}{@code 7}{@code REF_invokeSpecial}{@code class} or {@code interface}{@code T m(A*);}{@code (T) super.m(arg*);}
{@code 8}{@code REF_newInvokeSpecial}{@code class}{@code 8}{@code REF_newInvokeSpecial}{@code class}{@code C(A*);}{@code new C(arg*);}
{@code 9}{@code REF_invokeInterface}{@code interface}{@code 9}{@code REF_invokeInterface}{@code interface}{@code T m(A*);}{@code (T) this.m(arg*);}
lookup method behaviors
lookup expressionmemberbytecode behaviorlookup expressionmemberbytecode behavior
{@link java.lang.invoke.MethodHandles.Lookup#findGetter lookup.findGetter(C.class,"f",FT.class)}{@link java.lang.invoke.MethodHandles.Lookup#findGetter lookup.findGetter(C.class,"f",FT.class)}{@code FT f;}{@code (T) this.f;}
{@link java.lang.invoke.MethodHandles.Lookup#findStaticGetter lookup.findStaticGetter(C.class,"f",FT.class)}{@link java.lang.invoke.MethodHandles.Lookup#findStaticGetter lookup.findStaticGetter(C.class,"f",FT.class)}{@code static}
{@code FT f;}
{@code (T) C.f;}
{@link java.lang.invoke.MethodHandles.Lookup#findSetter lookup.findSetter(C.class,"f",FT.class)}{@link java.lang.invoke.MethodHandles.Lookup#findSetter lookup.findSetter(C.class,"f",FT.class)}{@code FT f;}{@code this.f = x;}
{@link java.lang.invoke.MethodHandles.Lookup#findStaticSetter lookup.findStaticSetter(C.class,"f",FT.class)}{@link java.lang.invoke.MethodHandles.Lookup#findStaticSetter lookup.findStaticSetter(C.class,"f",FT.class)}{@code static}
{@code FT f;}
{@code C.f = arg;}
{@link java.lang.invoke.MethodHandles.Lookup#findVirtual lookup.findVirtual(C.class,"m",MT)}{@link java.lang.invoke.MethodHandles.Lookup#findVirtual lookup.findVirtual(C.class,"m",MT)}{@code T m(A*);}{@code (T) this.m(arg*);}
{@link java.lang.invoke.MethodHandles.Lookup#findStatic lookup.findStatic(C.class,"m",MT)}{@link java.lang.invoke.MethodHandles.Lookup#findStatic lookup.findStatic(C.class,"m",MT)}{@code static}
{@code T m(A*);}
{@code (T) C.m(arg*);}
{@link java.lang.invoke.MethodHandles.Lookup#findSpecial lookup.findSpecial(C.class,"m",MT,this.class)}{@link java.lang.invoke.MethodHandles.Lookup#findSpecial lookup.findSpecial(C.class,"m",MT,this.class)}{@code T m(A*);}{@code (T) super.m(arg*);}
{@link java.lang.invoke.MethodHandles.Lookup#findConstructor lookup.findConstructor(C.class,MT)}{@link java.lang.invoke.MethodHandles.Lookup#findConstructor lookup.findConstructor(C.class,MT)}{@code C(A*);}{@code new C(arg*);}
{@link java.lang.invoke.MethodHandles.Lookup#unreflectGetter lookup.unreflectGetter(aField)}{@link java.lang.invoke.MethodHandles.Lookup#unreflectGetter lookup.unreflectGetter(aField)}({@code static})?
{@code FT f;}
{@code (FT) aField.get(thisOrNull);}
{@link java.lang.invoke.MethodHandles.Lookup#unreflectSetter lookup.unreflectSetter(aField)}{@link java.lang.invoke.MethodHandles.Lookup#unreflectSetter lookup.unreflectSetter(aField)}({@code static})?
{@code FT f;}
{@code aField.set(thisOrNull, arg);}
{@link java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)}{@link java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)}({@code static})?
{@code T m(A*);}
{@code (T) aMethod.invoke(thisOrNull, arg*);}
{@link java.lang.invoke.MethodHandles.Lookup#unreflectConstructor lookup.unreflectConstructor(aConstructor)}{@link java.lang.invoke.MethodHandles.Lookup#unreflectConstructor lookup.unreflectConstructor(aConstructor)}{@code C(A*);}{@code (C) aConstructor.newInstance(arg*);}
{@link java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)}{@link java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)}({@code static})?
{@code T m(A*);}
{@code (T) aMethod.invoke(thisOrNull, arg*);}
{@link java.lang.invoke.MethodHandles.Lookup#findClass lookup.findClass("C")}{@link java.lang.invoke.MethodHandles.Lookup#findClass lookup.findClass("C")}{@code class C { ... }}{@code C.class;}
Table shows permission target name, what the permission allows, and associated risks
Permission Target NameWhat the Permission AllowsRisks of Allowing this PermissionPermission Target NameWhat the Permission AllowsRisks of Allowing this Permission
suppressAccessCheckssuppressAccessChecksability to suppress the standard Java language access checks * on fields and methods in a class; allow access not only public members * but also allow access to default (package) access, protected, @@ -53,7 +53,7 @@ * methods normally unavailable would be accessible to malicious code.
newProxyInPackage.{package name}newProxyInPackage.{package name}ability to create a proxy instance in the specified package of which * the non-public interface that the proxy class implements.This gives code access to classes in packages to which it normally --- old/src/java.base/share/classes/java/net/NetPermission.java 2017-07-11 14:33:42.516504835 -0700 +++ new/src/java.base/share/classes/java/net/NetPermission.java 2017-07-11 14:33:42.316496108 -0700 @@ -51,14 +51,14 @@ *
Permission target name, what the permission allows, and associated risks
Permission Target NameWhat the Permission AllowsRisks of Allowing this PermissionPermission Target NameWhat the Permission AllowsRisks of Allowing this Permission
allowHttpTraceallowHttpTraceThe ability to use the HTTP TRACE method in HttpURLConnection.Malicious code using HTTP TRACE could get access to security sensitive * information in the HTTP headers (such as cookies) that it might not @@ -66,7 +66,7 @@ *
getCookieHandlergetCookieHandlerThe ability to get the cookie handler that processes highly * security sensitive cookie information for an Http session.Malicious code can get a cookie handler to obtain access to @@ -76,14 +76,14 @@ *
getNetworkInformationgetNetworkInformationThe ability to retrieve all information about local network interfaces.Malicious code can read information about network hardware such as * MAC addresses, which could be used to construct local IPv6 addresses.
getProxySelectorgetProxySelectorThe ability to get the proxy selector used to make decisions * on which proxies to use when making network connections.Malicious code can get a ProxySelector to discover proxy @@ -92,7 +92,7 @@ *
getResponseCachegetResponseCacheThe ability to get the response cache that provides * access to a local response cache.Malicious code getting access to the local response cache @@ -100,7 +100,7 @@ *
requestPasswordAuthenticationrequestPasswordAuthenticationThe ability * to ask the authenticator registered with the system for * a password
setCookieHandlersetCookieHandlerThe ability to set the cookie handler that processes highly * security sensitive cookie information for an Http session.Malicious code can set a cookie handler to obtain access to @@ -118,7 +118,7 @@ *
setDefaultAuthenticatorsetDefaultAuthenticatorThe ability to set the * way authentication information is retrieved when * a proxy or HTTP server asks for authentication
setProxySelectorsetProxySelectorThe ability to set the proxy selector used to make decisions * on which proxies to use when making network connections.Malicious code can set a ProxySelector that directs network @@ -136,7 +136,7 @@ *
setResponseCachesetResponseCacheThe ability to set the response cache that provides access to * a local response cache.Malicious code getting access to the local response cache @@ -145,7 +145,7 @@ *
specifyStreamHandlerspecifyStreamHandlerThe ability * to specify a stream handler when constructing a URLMalicious code may create a URL with resources that it would --- old/src/java.base/share/classes/java/nio/channels/AsynchronousChannelGroup.java 2017-07-11 14:33:43.036527525 -0700 +++ new/src/java.base/share/classes/java/nio/channels/AsynchronousChannelGroup.java 2017-07-11 14:33:42.832518623 -0700 @@ -64,13 +64,13 @@ *
System properties
System propertyDescriptionSystem propertyDescription
{@code java.nio.channels.DefaultThreadPool.threadFactory} {@code java.nio.channels.DefaultThreadPool.threadFactory} The value of this property is taken to be the fully-qualified name * of a concrete {@link java.util.concurrent.ThreadFactory ThreadFactory} * class. The class is loaded using the system class loader and instantiated. @@ -81,7 +81,7 @@ * construction of the default group.
{@code java.nio.channels.DefaultThreadPool.initialSize} {@code java.nio.channels.DefaultThreadPool.initialSize} The value of the {@code initialSize} parameter for the default * group (see {@link #withCachedThreadPool withCachedThreadPool}). * The value of the property is taken to be the {@code String} --- old/src/java.base/share/classes/java/nio/channels/AsynchronousFileChannel.java 2017-07-11 14:33:43.552550041 -0700 +++ new/src/java.base/share/classes/java/nio/channels/AsynchronousFileChannel.java 2017-07-11 14:33:43.348541139 -0700 @@ -136,17 +136,17 @@ * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * - * + * + * * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/nio/channels/AsynchronousSocketChannel.java 2017-07-11 14:33:44.584595072 -0700 +++ new/src/java.base/share/classes/java/nio/channels/AsynchronousSocketChannel.java 2017-07-11 14:33:44.380586171 -0700 @@ -66,29 +66,29 @@ * * * - * - * + * + * * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/nio/channels/DatagramChannel.java 2017-07-11 14:33:45.096617414 -0700 +++ new/src/java.base/share/classes/java/nio/channels/DatagramChannel.java 2017-07-11 14:33:44.900608861 -0700 @@ -61,44 +61,44 @@ * * * - * - * + * + * * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/nio/channels/FileChannel.java 2017-07-11 14:33:45.624640453 -0700 +++ new/src/java.base/share/classes/java/nio/channels/FileChannel.java 2017-07-11 14:33:45.424631726 -0700 @@ -177,11 +177,11 @@ *
additional options
Option Description
Option Description
{@link StandardOpenOption#TRUNCATE_EXISTING TRUNCATE_EXISTING} {@link StandardOpenOption#TRUNCATE_EXISTING TRUNCATE_EXISTING} When opening an existing file, the file is first truncated to a * size of 0 bytes. This option is ignored when the file is opened only * for reading.
{@link StandardOpenOption#CREATE_NEW CREATE_NEW} {@link StandardOpenOption#CREATE_NEW CREATE_NEW} If this option is present then a new file is created, failing if * the file already exists. When creating a file the check for the * existence of the file and the creation of the file if it does not exist @@ -154,7 +154,7 @@ * ignored when the file is opened only for reading.
{@link StandardOpenOption#CREATE CREATE} {@link StandardOpenOption#CREATE CREATE} If this option is present then an existing file is opened if it * exists, otherwise a new file is created. When creating a file the check * for the existence of the file and the creation of the file if it does @@ -163,7 +163,7 @@ * the file is opened only for reading.
{@link StandardOpenOption#DELETE_ON_CLOSE DELETE_ON_CLOSE} {@link StandardOpenOption#DELETE_ON_CLOSE DELETE_ON_CLOSE} When this option is present then the implementation makes a * best effort attempt to delete the file when closed by the * the {@link #close close} method. If the {@code close} method is not @@ -171,20 +171,20 @@ * when the Java virtual machine terminates.
{@link StandardOpenOption#SPARSE SPARSE} {@link StandardOpenOption#SPARSE SPARSE} When creating a new file this option is a hint that the * new file will be sparse. This option is ignored when not creating * a new file.
{@link StandardOpenOption#SYNC SYNC} {@link StandardOpenOption#SYNC SYNC} Requires that every update to the file's content or metadata be * written synchronously to the underlying storage device. (see Synchronized I/O file * integrity).
{@link StandardOpenOption#DSYNC DSYNC} {@link StandardOpenOption#DSYNC DSYNC} Requires that every update to the file's content be written * synchronously to the underlying storage device. (see Synchronized I/O file --- old/src/java.base/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java 2017-07-11 14:33:44.064572382 -0700 +++ new/src/java.base/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java 2017-07-11 14:33:43.868563829 -0700 @@ -56,17 +56,17 @@ *
Socket options
Option NameDescriptionOption NameDescription
{@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} {@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} The size of the socket receive buffer
{@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} {@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} Re-use address
Socket options
Option NameDescriptionOption NameDescription
{@link java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF} {@link java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF} The size of the socket send buffer
{@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} {@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} The size of the socket receive buffer
{@link java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE} {@link java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE} Keep connection alive
{@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} {@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} Re-use address
{@link java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY} {@link java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY} Disable the Nagle algorithm
Socket options
Option NameDescriptionOption NameDescription
{@link java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF} {@link java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF} The size of the socket send buffer
{@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} {@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} The size of the socket receive buffer
{@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} {@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} Re-use address
{@link java.net.StandardSocketOptions#SO_BROADCAST SO_BROADCAST} {@link java.net.StandardSocketOptions#SO_BROADCAST SO_BROADCAST} Allow transmission of broadcast datagrams
{@link java.net.StandardSocketOptions#IP_TOS IP_TOS} {@link java.net.StandardSocketOptions#IP_TOS IP_TOS} The Type of Service (ToS) octet in the Internet Protocol (IP) header
{@link java.net.StandardSocketOptions#IP_MULTICAST_IF IP_MULTICAST_IF} {@link java.net.StandardSocketOptions#IP_MULTICAST_IF IP_MULTICAST_IF} The network interface for Internet Protocol (IP) multicast datagrams
{@link java.net.StandardSocketOptions#IP_MULTICAST_TTL - * IP_MULTICAST_TTL} {@link java.net.StandardSocketOptions#IP_MULTICAST_TTL + * IP_MULTICAST_TTL} The time-to-live for Internet Protocol (IP) multicast * datagrams
{@link java.net.StandardSocketOptions#IP_MULTICAST_LOOP - * IP_MULTICAST_LOOP} {@link java.net.StandardSocketOptions#IP_MULTICAST_LOOP + * IP_MULTICAST_LOOP} Loopback for Internet Protocol (IP) multicast datagrams
* * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * - * + * + * * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/nio/channels/SocketChannel.java 2017-07-11 14:33:46.672686183 -0700 +++ new/src/java.base/share/classes/java/nio/channels/SocketChannel.java 2017-07-11 14:33:46.472677456 -0700 @@ -70,34 +70,34 @@ * * * - * - * + * + * * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/nio/charset/Charset.java 2017-07-11 14:33:47.204709397 -0700 +++ new/src/java.base/share/classes/java/nio/charset/Charset.java 2017-07-11 14:33:47.000700496 -0700 @@ -150,23 +150,23 @@ *
additional options
Option Description
Option Description
{@link StandardOpenOption#APPEND APPEND} {@link StandardOpenOption#APPEND APPEND} If this option is present then the file is opened for writing and * each invocation of the channel's {@code write} method first advances * the position to the end of the file and then writes the requested @@ -191,13 +191,13 @@ * with the {@code READ} or {@code TRUNCATE_EXISTING} options.
{@link StandardOpenOption#TRUNCATE_EXISTING TRUNCATE_EXISTING} {@link StandardOpenOption#TRUNCATE_EXISTING TRUNCATE_EXISTING} If this option is present then the existing file is truncated to * a size of 0 bytes. This option is ignored when the file is opened only * for reading.
{@link StandardOpenOption#CREATE_NEW CREATE_NEW} {@link StandardOpenOption#CREATE_NEW CREATE_NEW} If this option is present then a new file is created, failing if * the file already exists. When creating a file the check for the * existence of the file and the creation of the file if it does not exist @@ -205,7 +205,7 @@ * ignored when the file is opened only for reading.
{@link StandardOpenOption#CREATE CREATE} {@link StandardOpenOption#CREATE CREATE} If this option is present then an existing file is opened if it * exists, otherwise a new file is created. When creating a file the check * for the existence of the file and the creation of the file if it does @@ -214,7 +214,7 @@ * the file is opened only for reading.
{@link StandardOpenOption#DELETE_ON_CLOSE DELETE_ON_CLOSE} {@link StandardOpenOption#DELETE_ON_CLOSE DELETE_ON_CLOSE} When this option is present then the implementation makes a * best effort attempt to delete the file when closed by the * the {@link #close close} method. If the {@code close} method is not @@ -222,20 +222,20 @@ * when the Java virtual machine terminates.
{@link StandardOpenOption#SPARSE SPARSE} {@link StandardOpenOption#SPARSE SPARSE} When creating a new file this option is a hint that the * new file will be sparse. This option is ignored when not creating * a new file.
{@link StandardOpenOption#SYNC SYNC} {@link StandardOpenOption#SYNC SYNC} Requires that every update to the file's content or metadata be * written synchronously to the underlying storage device. (see Synchronized I/O file * integrity).
{@link StandardOpenOption#DSYNC DSYNC} {@link StandardOpenOption#DSYNC DSYNC} Requires that every update to the file's content be written * synchronously to the underlying storage device. (see Synchronized I/O file --- old/src/java.base/share/classes/java/nio/channels/ServerSocketChannel.java 2017-07-11 14:33:46.160663842 -0700 +++ new/src/java.base/share/classes/java/nio/channels/ServerSocketChannel.java 2017-07-11 14:33:45.960655114 -0700 @@ -50,17 +50,17 @@ *
Socket options
Option NameDescriptionOption NameDescription
{@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} {@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} The size of the socket receive buffer
{@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} {@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} Re-use address
Socket options
Option NameDescriptionOption NameDescription
{@link java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF} {@link java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF} The size of the socket send buffer
{@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} {@link java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF} The size of the socket receive buffer
{@link java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE} {@link java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE} Keep connection alive
{@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} {@link java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR} Re-use address
{@link java.net.StandardSocketOptions#SO_LINGER SO_LINGER} {@link java.net.StandardSocketOptions#SO_LINGER SO_LINGER} Linger on close if data is present (when configured in blocking mode * only)
{@link java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY} {@link java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY} Disable the Nagle algorithm
* * - * + * * * - * + * * - * + * * - * + * * - * + * * - * + * * - * + * * * --- old/src/java.base/share/classes/java/nio/file/Files.java 2017-07-11 14:33:47.732732436 -0700 +++ new/src/java.base/share/classes/java/nio/file/Files.java 2017-07-11 14:33:47.528723535 -0700 @@ -236,11 +236,11 @@ *
Description of standard charsets
CharsetDescription
CharsetDescription
{@code US-ASCII}
{@code US-ASCII}Seven-bit ASCII, a.k.a. {@code ISO646-US}, * a.k.a. the Basic Latin block of the Unicode character set
ISO-8859-1  
ISO-8859-1  ISO Latin Alphabet No. 1, a.k.a. {@code ISO-LATIN-1}
{@code UTF-8}
{@code UTF-8}Eight-bit UCS Transformation Format
{@code UTF-16BE}
{@code UTF-16BE}Sixteen-bit UCS Transformation Format, * big-endian byte order
{@code UTF-16LE}
{@code UTF-16LE}Sixteen-bit UCS Transformation Format, * little-endian byte order
{@code UTF-16}
{@code UTF-16}Sixteen-bit UCS Transformation Format, * byte order identified by an optional byte-order mark
* * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * *
Options
Option Description
Option Description
{@link StandardOpenOption#APPEND APPEND} {@link StandardOpenOption#APPEND APPEND} If this option is present then the file is opened for writing and * each invocation of the channel's {@code write} method first advances * the position to the end of the file and then writes the requested @@ -250,13 +250,13 @@ * with the {@code READ} or {@code TRUNCATE_EXISTING} options.
{@link StandardOpenOption#TRUNCATE_EXISTING TRUNCATE_EXISTING} {@link StandardOpenOption#TRUNCATE_EXISTING TRUNCATE_EXISTING} If this option is present then the existing file is truncated to * a size of 0 bytes. This option is ignored when the file is opened only * for reading.
{@link StandardOpenOption#CREATE_NEW CREATE_NEW} {@link StandardOpenOption#CREATE_NEW CREATE_NEW} If this option is present then a new file is created, failing if * the file already exists or is a symbolic link. When creating a file the * check for the existence of the file and the creation of the file if it @@ -264,14 +264,14 @@ * This option is ignored when the file is opened only for reading.
{@link StandardOpenOption#CREATE CREATE} {@link StandardOpenOption#CREATE CREATE} If this option is present then an existing file is opened if it * exists, otherwise a new file is created. This option is ignored if the * {@code CREATE_NEW} option is also present or the file is opened only * for reading.
{@link StandardOpenOption#DELETE_ON_CLOSE DELETE_ON_CLOSE} {@link StandardOpenOption#DELETE_ON_CLOSE DELETE_ON_CLOSE} When this option is present then the implementation makes a * best effort attempt to delete the file when closed by the * {@link SeekableByteChannel#close close} method. If the {@code close} @@ -279,20 +279,20 @@ * delete the file when the Java virtual machine terminates.
{@link StandardOpenOption#SPARSE SPARSE} {@link StandardOpenOption#SPARSE SPARSE} When creating a new file this option is a hint that the * new file will be sparse. This option is ignored when not creating * a new file.
{@link StandardOpenOption#SYNC SYNC} {@link StandardOpenOption#SYNC SYNC} Requires that every update to the file's content or metadata be * written synchronously to the underlying storage device. (see Synchronized I/O file * integrity).
{@link StandardOpenOption#DSYNC DSYNC} {@link StandardOpenOption#DSYNC DSYNC} Requires that every update to the file's content be written * synchronously to the underlying storage device. (see Synchronized I/O file @@ -1196,18 +1196,18 @@ * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * - * - * + * + * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * - * + * * * * * - * + * * * * --- old/src/java.base/share/classes/java/util/Formatter.java 2017-07-11 14:33:53.664991281 -0700 +++ new/src/java.base/share/classes/java/util/Formatter.java 2017-07-11 14:33:53.464982554 -0700 @@ -293,12 +293,12 @@ *
Options
Option Description
Option Description
{@link StandardCopyOption#REPLACE_EXISTING REPLACE_EXISTING} {@link StandardCopyOption#REPLACE_EXISTING REPLACE_EXISTING} If the target file exists, then the target file is replaced if it * is not a non-empty directory. If the target file exists and is a * symbolic link, then the symbolic link itself, not the target of * the link, is replaced.
{@link StandardCopyOption#COPY_ATTRIBUTES COPY_ATTRIBUTES} {@link StandardCopyOption#COPY_ATTRIBUTES COPY_ATTRIBUTES} Attempts to copy the file attributes associated with this file to * the target file. The exact file attributes that are copied is platform * and file system dependent and therefore unspecified. Minimally, the @@ -1217,7 +1217,7 @@ * loss.
{@link LinkOption#NOFOLLOW_LINKS NOFOLLOW_LINKS} {@link LinkOption#NOFOLLOW_LINKS NOFOLLOW_LINKS} Symbolic links are not followed. If the file is a symbolic link, * then the symbolic link itself, not the target of the link, is copied. * It is implementation specific if file attributes can be copied to the @@ -1319,18 +1319,18 @@ * * * - * + * * * * - * + * * * * - * + * * * * - * - * - * + * + * + * * * * * - * + * * * * * - * + * * * * * - * - * + * + * * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/nio/file/attribute/BasicFileAttributeView.java 2017-07-11 14:33:49.332802253 -0700 +++ new/src/java.base/share/classes/java/nio/file/attribute/BasicFileAttributeView.java 2017-07-11 14:33:49.132793526 -0700 @@ -45,45 +45,45 @@ * * * - * - * + * + * * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/nio/file/attribute/DosFileAttributeView.java 2017-07-11 14:33:49.848824768 -0700 +++ new/src/java.base/share/classes/java/nio/file/attribute/DosFileAttributeView.java 2017-07-11 14:33:49.644815867 -0700 @@ -45,25 +45,25 @@ * * * - * - * + * + * * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/nio/file/attribute/PosixFileAttributeView.java 2017-07-11 14:33:50.356846935 -0700 +++ new/src/java.base/share/classes/java/nio/file/attribute/PosixFileAttributeView.java 2017-07-11 14:33:50.152838034 -0700 @@ -78,17 +78,17 @@ * * * - * - * + * + * * * * * - * + * * * * - * + * * * * --- old/src/java.base/share/classes/java/nio/file/spi/FileSystemProvider.java 2017-07-11 14:33:50.868869276 -0700 +++ new/src/java.base/share/classes/java/nio/file/spi/FileSystemProvider.java 2017-07-11 14:33:50.668860550 -0700 @@ -922,21 +922,21 @@ *
Options
Option Description
Option Description
{@link StandardCopyOption#REPLACE_EXISTING REPLACE_EXISTING} {@link StandardCopyOption#REPLACE_EXISTING REPLACE_EXISTING} If the target file exists, then the target file is replaced if it * is not a non-empty directory. If the target file exists and is a * symbolic link, then the symbolic link itself, not the target of * the link, is replaced.
{@link StandardCopyOption#ATOMIC_MOVE ATOMIC_MOVE} {@link StandardCopyOption#ATOMIC_MOVE ATOMIC_MOVE} The move is performed as an atomic file system operation and all * other options are ignored. If the target file exists then it is * implementation specific if the existing file is replaced or this method --- old/src/java.base/share/classes/java/nio/file/LinkPermission.java 2017-07-11 14:33:48.316757920 -0700 +++ new/src/java.base/share/classes/java/nio/file/LinkPermission.java 2017-07-11 14:33:48.120749367 -0700 @@ -37,14 +37,14 @@ *
Table shows permission target name, what the permission allows, and associated risks
Permission Target NameWhat the Permission AllowsRisks of Allowing this PermissionPermission Target NameWhat the Permission AllowsRisks of Allowing this Permission
hardhard Ability to add an existing file to a directory. This is sometimes * known as creating a link, or hard link. Extreme care should be taken when granting this permission. It allows @@ -52,7 +52,7 @@ * attacker access to all files.
symbolicsymbolic Ability to create symbolic links. Extreme care should be taken when granting this permission. It allows * linking to any file or directory in the file system thus allowing the --- old/src/java.base/share/classes/java/nio/file/attribute/AclFileAttributeView.java 2017-07-11 14:33:48.820779911 -0700 +++ new/src/java.base/share/classes/java/nio/file/attribute/AclFileAttributeView.java 2017-07-11 14:33:48.620771184 -0700 @@ -98,17 +98,17 @@ *
Supported attributes
Name Type Name Type
"acl" "acl" {@link List}<{@link AclEntry}>
"owner" "owner" {@link UserPrincipal}
Supported attributes
Name Type Name Type
"lastModifiedTime" "lastModifiedTime" {@link FileTime}
"lastAccessTime" "lastAccessTime" {@link FileTime}
"creationTime" "creationTime" {@link FileTime}
"size" "size" {@link Long}
"isRegularFile" "isRegularFile" {@link Boolean}
"isDirectory" "isDirectory" {@link Boolean}
"isSymbolicLink" "isSymbolicLink" {@link Boolean}
"isOther" "isOther" {@link Boolean}
"fileKey" "fileKey" {@link Object}
Supported attributes
Name Type Name Type
readonly readonly {@link Boolean}
hidden hidden {@link Boolean}
system system {@link Boolean}
archive archive {@link Boolean}
Supported attributes
Name Type Name Type
"permissions" "permissions" {@link Set}<{@link PosixFilePermission}>
"group" "group" {@link GroupPrincipal}
* * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * - * - * + * + * + * * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * - * - * + * + * + * * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * * * * - * + * * @@ -296,7 +296,7 @@ * * * - * + * * * * * - * + * * * * * - * * * - * - * - * - * - * - * - * - * - * - * - * * * - * * * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * * * - * * * - * - * - * - * - * - * - * - * - * - * - * *
Access Modes
Value Description
Value Description
{@link AccessMode#READ READ} {@link AccessMode#READ READ} Checks that the file exists and that the Java virtual machine has * permission to read the file.
{@link AccessMode#WRITE WRITE} {@link AccessMode#WRITE WRITE} Checks that the file exists and that the Java virtual machine has * permission to write to the file,
{@link AccessMode#EXECUTE EXECUTE} {@link AccessMode#EXECUTE EXECUTE} Checks that the file exists and that the Java virtual machine has * permission to {@link Runtime#exec execute} the file. The semantics * may differ when checking access to a directory. For example, on UNIX --- old/src/java.base/share/classes/java/security/SecurityPermission.java 2017-07-11 14:33:51.392892142 -0700 +++ new/src/java.base/share/classes/java/security/SecurityPermission.java 2017-07-11 14:33:51.192883414 -0700 @@ -49,15 +49,15 @@ *
target name, what the permission allows, and associated risks
Permission Target NameWhat the Permission AllowsRisks of Allowing this PermissionPermission Target NameWhat the Permission AllowsRisks of Allowing this Permission
authProvider.{provider name}authProvider.{provider name}Allow the named provider to be an AuthProvider for login and * logout operations. This allows the named provider to perform login and logout @@ -68,7 +68,7 @@ *
createAccessControlContextcreateAccessControlContextCreation of an AccessControlContextThis allows someone to instantiate an AccessControlContext * with a {@code DomainCombiner}. Extreme care must be taken when @@ -78,7 +78,7 @@ *
getDomainCombinergetDomainCombinerRetrieval of an AccessControlContext's DomainCombinerThis allows someone to retrieve an AccessControlContext's * {@code DomainCombiner}. Since DomainCombiners may contain @@ -86,7 +86,7 @@ *
getPolicygetPolicyRetrieval of the system-wide security policy (specifically, of the * currently-installed Policy object)This allows someone to query the policy via the @@ -99,7 +99,7 @@ *
setPolicysetPolicySetting of the system-wide security policy (specifically, * the Policy object)Granting this permission is extremely dangerous, as malicious @@ -108,7 +108,7 @@ *
createPolicy.{policy type}createPolicy.{policy type}Getting an instance of a Policy implementation from a providerGranting this permission enables code to obtain a Policy object. * Malicious code may query the Policy object to determine what permissions @@ -116,7 +116,7 @@ *
getProperty.{key}getProperty.{key}Retrieval of the security property with the specified keyDepending on the particular key for which access has * been granted, the code may have access to the list of security @@ -129,7 +129,7 @@ *
setProperty.{key}setProperty.{key}Setting of the security property with the specified keyThis could include setting a security provider or defining * the location of the system-wide security policy. Malicious @@ -144,7 +144,7 @@ *
insertProviderinsertProviderAddition of a new providerThis would allow somebody to introduce a possibly * malicious provider (e.g., one that discloses the private keys passed @@ -158,7 +158,7 @@ *
removeProvider.{provider name}removeProvider.{provider name}Removal of the specified providerThis may change the behavior or disable execution of other * parts of the program. If a provider subsequently requested by the @@ -171,7 +171,7 @@ *
clearProviderProperties.{provider name}clearProviderProperties.{provider name}"Clearing" of a Provider so that it no longer contains the properties * used to look up services implemented by the providerThis disables the lookup of services implemented by the provider. @@ -181,7 +181,7 @@ *
putProviderProperty.{provider name}putProviderProperty.{provider name}Setting of properties for the specified ProviderThe provider properties each specify the name and location * of a particular service implemented by the provider. By granting @@ -190,7 +190,7 @@ *
removeProviderProperty.{provider name}removeProviderProperty.{provider name}Removal of properties from the specified ProviderThis disables the lookup of services implemented by the * provider. They are no longer accessible due to removal of the properties @@ -213,15 +213,15 @@ *
target name, what the permission allows, and associated risks
Permission Target NameWhat the Permission AllowsRisks of Allowing this PermissionPermission Target NameWhat the Permission AllowsRisks of Allowing this Permission
insertProvider.{provider name}insertProvider.{provider name}Addition of a new provider, with the specified nameUse of this permission is discouraged from further use because it is * possible to circumvent the name restrictions by overriding the @@ -238,7 +238,7 @@ *
setSystemScopesetSystemScopeSetting of the system identity scopeThis would allow an attacker to configure the system identity scope with * certificates that should not be trusted, thereby granting applet or @@ -247,7 +247,7 @@ *
setIdentityPublicKeysetIdentityPublicKeySetting of the public key for an IdentityIf the identity is marked as "trusted", this allows an attacker to * introduce a different public key (e.g., its own) that is not trusted @@ -257,7 +257,7 @@ *
setIdentityInfosetIdentityInfoSetting of a general information string for an IdentityThis allows attackers to set the general description for * an identity. This may trick applications into using a different @@ -266,7 +266,7 @@ *
addIdentityCertificateaddIdentityCertificateAddition of a certificate for an IdentityThis allows attackers to set a certificate for * an identity's public key. This is dangerous because it affects @@ -275,7 +275,7 @@ *
removeIdentityCertificateremoveIdentityCertificateRemoval of a certificate for an IdentityThis allows attackers to remove a certificate for * an identity's public key. This is dangerous because it affects @@ -284,7 +284,7 @@ *
printIdentityprintIdentityViewing the name of a principal * and optionally the scope in which it is used, and whether * or not it is considered "trusted" in that scope
getSignerPrivateKeygetSignerPrivateKeyRetrieval of a Signer's private keyIt is very dangerous to allow access to a private key; private * keys are supposed to be kept secret. Otherwise, code can use the @@ -305,7 +305,7 @@ *
setSignerKeyPairsetSignerKeyPairSetting of the key pair (public key and private key) for a SignerThis would allow an attacker to replace somebody else's (the "target's") * keypair with a possibly weaker keypair (e.g., a keypair of a smaller --- old/src/java.base/share/classes/java/text/DecimalFormat.java 2017-07-11 14:33:51.916915007 -0700 +++ new/src/java.base/share/classes/java/text/DecimalFormat.java 2017-07-11 14:33:51.716906279 -0700 @@ -176,60 +176,60 @@ *
Chart showing symbol, location, localized, and meaning.
Symbol - * Location - * Localized? - * Meaning + * Symbol + * Location + * Localized? + * Meaning *
0 + * 0 * Number * Yes * Digit *
# + * # * Number * Yes * Digit, zero shows as absent *
. + * . * Number * Yes * Decimal separator or monetary decimal separator *
- + * - * Number * Yes * Minus sign *
, + * , * Number * Yes * Grouping separator *
E + * E * Number * Yes * Separates mantissa and exponent in scientific notation. * Need not be quoted in prefix or suffix. *
; + * ; * Subpattern boundary * Yes * Separates positive and negative subpatterns *
% + * % * Prefix or suffix * Yes * Multiply by 100 and show as percentage *
\u2030 + * \u2030 * Prefix or suffix * Yes * Multiply by 1000 and show as per mille value *
¤ (\u00A4) + * ¤ (\u00A4) * Prefix or suffix * No * Currency sign, replaced by currency symbol. If @@ -237,7 +237,7 @@ * If present in a pattern, the monetary decimal separator * is used instead of the decimal separator. *
' + * ' * Prefix or suffix * No * Used to quote special characters in a prefix or suffix, --- old/src/java.base/share/classes/java/text/SimpleDateFormat.java 2017-07-11 14:33:52.520941362 -0700 +++ new/src/java.base/share/classes/java/text/SimpleDateFormat.java 2017-07-11 14:33:52.320932635 -0700 @@ -96,124 +96,124 @@ *
Chart shows pattern letters, date/time component, presentation, and examples.
Letter - * Date or Time Component - * Presentation - * Examples + * Letter + * Date or Time Component + * Presentation + * Examples *
G + * G * Era designator * Text * AD *
y + * y * Year * Year * 1996; 96 *
Y + * Y * Week year * Year * 2009; 09 *
M + * M * Month in year (context sensitive) * Month * July; Jul; 07 *
L + * L * Month in year (standalone form) * Month * July; Jul; 07 *
w + * w * Week in year * Number * 27 *
W + * W * Week in month * Number * 2 *
D + * D * Day in year * Number * 189 *
d + * d * Day in month * Number * 10 *
F + * F * Day of week in month * Number * 2 *
E + * E * Day name in week * Text * Tuesday; Tue *
u + * u * Day number of week (1 = Monday, ..., 7 = Sunday) * Number * 1 *
a + * a * Am/pm marker * Text * PM *
H + * H * Hour in day (0-23) * Number * 0 *
k + * k * Hour in day (1-24) * Number * 24 *
K + * K * Hour in am/pm (0-11) * Number * 0 *
h + * h * Hour in am/pm (1-12) * Number * 12 *
m + * m * Minute in hour * Number * 30 *
s + * s * Second in minute * Number * 55 *
S + * S * Millisecond * Number * 978 *
z + * z * Time zone * General time zone * Pacific Standard Time; PST; GMT-08:00 *
Z + * Z * Time zone * RFC 822 time zone * -0800 *
X + * X * Time zone * ISO 8601 time zone * -08; -0800; -08:00 @@ -379,42 +379,42 @@ *
Examples of date and time patterns interpreted in the U.S. locale
Date and Time Pattern - * Result + * Date and Time Pattern + * Result *
"yyyy.MM.dd G 'at' HH:mm:ss z" + * "yyyy.MM.dd G 'at' HH:mm:ss z" * 2001.07.04 AD at 12:08:56 PDT *
"EEE, MMM d, ''yy" + * "EEE, MMM d, ''yy" * Wed, Jul 4, '01 *
"h:mm a" + * "h:mm a" * 12:08 PM *
"hh 'o''clock' a, zzzz" + * "hh 'o''clock' a, zzzz" * 12 o'clock PM, Pacific Daylight Time *
"K:mm a, z" + * "K:mm a, z" * 0:08 PM, PDT *
"yyyyy.MMMMM.dd GGG hh:mm aaa" + * "yyyyy.MMMMM.dd GGG hh:mm aaa" * 02001.July.04 AD 12:08 PM *
"EEE, d MMM yyyy HH:mm:ss Z" + * "EEE, d MMM yyyy HH:mm:ss Z" * Wed, 4 Jul 2001 12:08:56 -0700 *
"yyMMddHHmmssZ" + * "yyMMddHHmmssZ" * 010704120856-0700 *
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" + * "yyyy-MM-dd'T'HH:mm:ss.SSSZ" * 2001-07-04T12:08:56.235-0700 *
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX" + * "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" * 2001-07-04T12:08:56.235-07:00 *
"YYYY-'W'ww-u" + * "YYYY-'W'ww-u" * 2001-W27-3 *
--- old/src/java.base/share/classes/java/time/format/DateTimeFormatter.java 2017-07-11 14:33:53.108967020 -0700 +++ new/src/java.base/share/classes/java/time/format/DateTimeFormatter.java 2017-07-11 14:33:52.904958118 -0700 @@ -154,103 +154,103 @@ *
Predefined Formatters
FormatterDescriptionExampleFormatterDescriptionExample
{@link #ofLocalizedDate ofLocalizedDate(dateStyle)} {@link #ofLocalizedDate ofLocalizedDate(dateStyle)} Formatter with date style from the locale '2011-12-03'
{@link #ofLocalizedTime ofLocalizedTime(timeStyle)} {@link #ofLocalizedTime ofLocalizedTime(timeStyle)} Formatter with time style from the locale '10:15:30'
{@link #ofLocalizedDateTime ofLocalizedDateTime(dateTimeStyle)} {@link #ofLocalizedDateTime ofLocalizedDateTime(dateTimeStyle)} Formatter with a style for date and time from the locale '3 Jun 2008 11:05:30'
{@link #ofLocalizedDateTime ofLocalizedDateTime(dateStyle,timeStyle)} - * {@link #ofLocalizedDateTime ofLocalizedDateTime(dateStyle,timeStyle)} + * Formatter with date and time styles from the locale '3 Jun 2008 11:05'
{@link #BASIC_ISO_DATE} {@link #BASIC_ISO_DATE}Basic ISO date '20111203'
{@link #ISO_LOCAL_DATE} {@link #ISO_LOCAL_DATE} ISO Local Date '2011-12-03'
{@link #ISO_OFFSET_DATE} {@link #ISO_OFFSET_DATE} ISO Date with offset '2011-12-03+01:00'
{@link #ISO_DATE} {@link #ISO_DATE} ISO Date with or without offset '2011-12-03+01:00'; '2011-12-03'
{@link #ISO_LOCAL_TIME} {@link #ISO_LOCAL_TIME} Time without offset '10:15:30'
{@link #ISO_OFFSET_TIME} {@link #ISO_OFFSET_TIME} Time with offset '10:15:30+01:00'
{@link #ISO_TIME} {@link #ISO_TIME} Time with or without offset '10:15:30+01:00'; '10:15:30'
{@link #ISO_LOCAL_DATE_TIME} {@link #ISO_LOCAL_DATE_TIME} ISO Local Date and Time '2011-12-03T10:15:30'
{@link #ISO_OFFSET_DATE_TIME} {@link #ISO_OFFSET_DATE_TIME} Date Time with Offset * 2011-12-03T10:15:30+01:00'
{@link #ISO_ZONED_DATE_TIME} {@link #ISO_ZONED_DATE_TIME} Zoned Date Time '2011-12-03T10:15:30+01:00[Europe/Paris]'
{@link #ISO_DATE_TIME} {@link #ISO_DATE_TIME} Date and time with ZoneId '2011-12-03T10:15:30+01:00[Europe/Paris]'
{@link #ISO_ORDINAL_DATE} {@link #ISO_ORDINAL_DATE} Year and day of year '2012-337'
{@link #ISO_WEEK_DATE} {@link #ISO_WEEK_DATE} Year and Week 2012-W48-6'
{@link #ISO_INSTANT} {@link #ISO_INSTANT} Date and Time of an Instant '2011-12-03T10:15:30Z'
{@link #RFC_1123_DATE_TIME} {@link #RFC_1123_DATE_TIME} RFC 1123 / RFC 822 'Tue, 3 Jun 2008 11:05:30 GMT'
* * - * * - *
genConv
Conversion - * Argument Category - * Description + *
Conversion + * Argument Category + * Description *
{@code 'b'}, {@code 'B'} + *
{@code 'b'}, {@code 'B'} * general * If the argument arg is {@code null}, then the result is * "{@code false}". If arg is a {@code boolean} or {@link @@ -306,64 +306,64 @@ * String#valueOf(boolean) String.valueOf(arg)}. Otherwise, the result is * "true". * - *
{@code 'h'}, {@code 'H'} + *
{@code 'h'}, {@code 'H'} * general * The result is obtained by invoking * {@code Integer.toHexString(arg.hashCode())}. * - *
{@code 's'}, {@code 'S'} + *
{@code 's'}, {@code 'S'} * general * If arg implements {@link Formattable}, then * {@link Formattable#formatTo arg.formatTo} is invoked. Otherwise, the * result is obtained by invoking {@code arg.toString()}. * - *
{@code 'c'}, {@code 'C'} + *
{@code 'c'}, {@code 'C'} * character * The result is a Unicode character * - *
{@code 'd'} + *
{@code 'd'} * integral * The result is formatted as a decimal integer * - *
{@code 'o'} + *
{@code 'o'} * integral * The result is formatted as an octal integer * - *
{@code 'x'}, {@code 'X'} + *
{@code 'x'}, {@code 'X'} * integral * The result is formatted as a hexadecimal integer * - *
{@code 'e'}, {@code 'E'} + *
{@code 'e'}, {@code 'E'} * floating point * The result is formatted as a decimal number in computerized * scientific notation * - *
{@code 'f'} + *
{@code 'f'} * floating point * The result is formatted as a decimal number * - *
{@code 'g'}, {@code 'G'} + *
{@code 'g'}, {@code 'G'} * floating point * The result is formatted using computerized scientific notation or * decimal format, depending on the precision and the value after rounding. * - *
{@code 'a'}, {@code 'A'} + *
{@code 'a'}, {@code 'A'} * floating point * The result is formatted as a hexadecimal floating-point number with * a significand and an exponent. This conversion is not supported * for the {@code BigDecimal} type despite the latter's being in the * floating point argument category. * - *
{@code 't'}, {@code 'T'} + *
{@code 't'}, {@code 'T'} * date/time * Prefix for date and time conversion characters. See Date/Time Conversions. * - *
{@code '%'} + *
{@code '%'} * percent * The result is a literal {@code '%'} ('\u0025') * - *
{@code 'n'} + *
{@code 'n'} * line separator * The result is the platform-specific line separator * @@ -387,44 +387,44 @@ * * * - * * * - * @@ -519,25 +519,25 @@ * * * - * * * - * - * - * + * + * + * * * * * - * * * * - * * * * - * * * * - * * * * * - * * * * * - * - * - * + * + * + * * * * * * - * + * * * * - * + * * * * * - * + * * *
time
{@code 'H'} + *
{@code 'H'} * Hour of the day for the 24-hour clock, formatted as two digits with * a leading zero as necessary i.e. {@code 00 - 23}. * - *
{@code 'I'} + *
{@code 'I'} * Hour for the 12-hour clock, formatted as two digits with a leading * zero as necessary, i.e. {@code 01 - 12}. * - *
{@code 'k'} + *
{@code 'k'} * Hour of the day for the 24-hour clock, i.e. {@code 0 - 23}. * - *
{@code 'l'} + *
{@code 'l'} * Hour for the 12-hour clock, i.e. {@code 1 - 12}. * - *
{@code 'M'} + *
{@code 'M'} * Minute within the hour formatted as two digits with a leading zero * as necessary, i.e. {@code 00 - 59}. * - *
{@code 'S'} + *
{@code 'S'} * Seconds within the minute, formatted as two digits with a leading * zero as necessary, i.e. {@code 00 - 60} ("{@code 60}" is a special * value required to support leap seconds). * - *
{@code 'L'} + *
{@code 'L'} * Millisecond within the second formatted as three digits with * leading zeros as necessary, i.e. {@code 000 - 999}. * - *
{@code 'N'} + *
{@code 'N'} * Nanosecond within the second, formatted as nine digits with leading * zeros as necessary, i.e. {@code 000000000 - 999999999}. * - *
{@code 'p'} + *
{@code 'p'} * Locale-specific {@linkplain * java.text.DateFormatSymbols#getAmPmStrings morning or afternoon} marker * in lower case, e.g."{@code am}" or "{@code pm}". Use of the conversion * prefix {@code 'T'} forces this output to upper case. * - *
{@code 'z'} + *
{@code 'z'} * RFC 822 * style numeric time zone offset from GMT, e.g. {@code -0800}. This * value will be adjusted as necessary for Daylight Saving Time. For @@ -432,7 +432,7 @@ * the {@linkplain TimeZone#getDefault() default time zone} for this * instance of the Java virtual machine. * - *
{@code 'Z'} + *
{@code 'Z'} * A string representing the abbreviation for the time zone. This * value will be adjusted as necessary for Daylight Saving Time. For * {@code long}, {@link Long}, and {@link Date} the time zone used is @@ -440,12 +440,12 @@ * instance of the Java virtual machine. The Formatter's locale will * supersede the locale of the argument (if any). * - *
{@code 's'} + *
{@code 's'} * Seconds since the beginning of the epoch starting at 1 January 1970 * {@code 00:00:00} UTC, i.e. {@code Long.MIN_VALUE/1000} to * {@code Long.MAX_VALUE/1000}. * - *
{@code 'Q'} + *
{@code 'Q'} * Milliseconds since the beginning of the epoch starting at 1 January * 1970 {@code 00:00:00} UTC, i.e. {@code Long.MIN_VALUE} to * {@code Long.MAX_VALUE}. @@ -459,54 +459,54 @@ *
date
{@code 'B'} + *
{@code 'B'} * Locale-specific {@linkplain java.text.DateFormatSymbols#getMonths * full month name}, e.g. {@code "January"}, {@code "February"}. * - *
{@code 'b'} + *
{@code 'b'} * Locale-specific {@linkplain * java.text.DateFormatSymbols#getShortMonths abbreviated month name}, * e.g. {@code "Jan"}, {@code "Feb"}. * - *
{@code 'h'} + *
{@code 'h'} * Same as {@code 'b'}. * - *
{@code 'A'} + *
{@code 'A'} * Locale-specific full name of the {@linkplain * java.text.DateFormatSymbols#getWeekdays day of the week}, * e.g. {@code "Sunday"}, {@code "Monday"} * - *
{@code 'a'} + *
{@code 'a'} * Locale-specific short name of the {@linkplain * java.text.DateFormatSymbols#getShortWeekdays day of the week}, * e.g. {@code "Sun"}, {@code "Mon"} * - *
{@code 'C'} + *
{@code 'C'} * Four-digit year divided by {@code 100}, formatted as two digits * with leading zero as necessary, i.e. {@code 00 - 99} * - *
{@code 'Y'} + *
{@code 'Y'} * Year, formatted as at least four digits with leading zeros as * necessary, e.g. {@code 0092} equals {@code 92} CE for the Gregorian * calendar. * - *
{@code 'y'} + *
{@code 'y'} * Last two digits of the year, formatted with leading zeros as * necessary, i.e. {@code 00 - 99}. * - *
{@code 'j'} + *
{@code 'j'} * Day of year, formatted as three digits with leading zeros as * necessary, e.g. {@code 001 - 366} for the Gregorian calendar. * - *
{@code 'm'} + *
{@code 'm'} * Month, formatted as two digits with leading zeros as necessary, * i.e. {@code 01 - 13}. * - *
{@code 'd'} + *
{@code 'd'} * Day of month, formatted as two digits with leading zeros as * necessary, i.e. {@code 01 - 31} * - *
{@code 'e'} + *
{@code 'e'} * Day of month, formatted as two digits, i.e. {@code 1 - 31}. * *
composites
{@code 'R'} + *
{@code 'R'} * Time formatted for the 24-hour clock as {@code "%tH:%tM"} * - *
{@code 'T'} + *
{@code 'T'} * Time formatted for the 24-hour clock as {@code "%tH:%tM:%tS"}. * - *
{@code 'r'} + *
{@code 'r'} * Time formatted for the 12-hour clock as {@code "%tI:%tM:%tS %Tp"}. * The location of the morning or afternoon marker ({@code '%Tp'}) may be * locale-dependent. * - *
{@code 'D'} + *
{@code 'D'} * Date formatted as {@code "%tm/%td/%ty"}. * - *
{@code 'F'} + *
{@code 'F'} * ISO 8601 * complete date formatted as {@code "%tY-%tm-%td"}. * - *
{@code 'c'} + *
{@code 'c'} * Date and time formatted as {@code "%ta %tb %td %tT %tZ %tY"}, * e.g. {@code "Sun Jul 20 16:17:00 EDT 1969"}. * @@ -555,49 +555,49 @@ * * * - * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * - * * * * * - * * * * - * * * * - * * * * - * * * * - * * * * - * * * * - * * * * - * * * * - * * --- old/src/java.base/share/classes/java/util/Locale.java 2017-07-11 14:33:54.937046785 -0700 +++ new/src/java.base/share/classes/java/util/Locale.java 2017-07-11 14:33:54.729037709 -0700 @@ -1590,29 +1590,29 @@ *
genConv
Flag General - * Character Integral - * Floating Point - * Date/Time - * Description + *
Flag General + * Character Integral + * Floating Point + * Date/Time + * Description *
'-' y + *
'-' y * y * y * y * y * The result will be left-justified. * - *
'#' y1 + *
'#' y1 * - * y3 * y * - * The result should use a conversion-dependent alternate form * - *
'+' - + *
'+' - * - * y4 * y * - * The result will always include a sign * - *
'  ' - + *
'  ' - * - * y4 * y * - * The result will include a leading space for positive values * - *
'0' - + *
'0' - * - * y * y * - * The result will be zero-padded * - *
',' - + *
',' - * - * y2 * y5 @@ -605,7 +605,7 @@ * The result will include locale-specific {@linkplain * java.text.DecimalFormatSymbols#getGroupingSeparator grouping separators} * - *
'(' - + *
'(' - * - * y4 * y5 @@ -723,7 +723,7 @@ *
dgConv
{@code 'b'} + *
{@code 'b'} * '\u0062' * Produces either "{@code true}" or "{@code false}" as returned by * {@link Boolean#toString(boolean)}. @@ -737,11 +737,11 @@ *

If the {@code '#'} flag is given, then a {@link * FormatFlagsConversionMismatchException} will be thrown. * - *

{@code 'B'} + *
{@code 'B'} * '\u0042' * The upper-case variant of {@code 'b'}. * - *
{@code 'h'} + *
{@code 'h'} * '\u0068' * Produces a string representing the hash code value of the object. * @@ -751,11 +751,11 @@ *

If the {@code '#'} flag is given, then a {@link * FormatFlagsConversionMismatchException} will be thrown. * - *

{@code 'H'} + *
{@code 'H'} * '\u0048' * The upper-case variant of {@code 'h'}. * - *
{@code 's'} + *
{@code 's'} * '\u0073' * Produces a string. * @@ -768,7 +768,7 @@ * Formattable} , then a {@link FormatFlagsConversionMismatchException} * will be thrown. * - *
{@code 'S'} + *
{@code 'S'} * '\u0053' * The upper-case variant of {@code 's'}. * @@ -781,7 +781,7 @@ *
dFlags
{@code '-'} + *
{@code '-'} * '\u002d' * Left justifies the output. Spaces ('\u0020') will be * added at the end of the converted value as required to fill the minimum @@ -789,7 +789,7 @@ * MissingFormatWidthException} will be thrown. If this flag is not given * then the output will be right-justified. * - *
{@code '#'} + *
{@code '#'} * '\u0023' * Requires the output use an alternate form. The definition of the * form is specified by the conversion. @@ -825,7 +825,7 @@ *
charConv
{@code 'c'} + *
{@code 'c'} * '\u0063' * Formats the argument as a Unicode character as described in Unicode Character @@ -835,7 +835,7 @@ *

If the {@code '#'} flag is given, then a {@link * FormatFlagsConversionMismatchException} will be thrown. * - *

{@code 'C'} + *
{@code 'C'} * '\u0043' * The upper-case variant of {@code 'c'}. * @@ -929,7 +929,7 @@ *
IntConv
{@code 'd'} + *
{@code 'd'} * '\u0064' * Formats the argument as a decimal integer. The localization algorithm is applied. @@ -940,7 +940,7 @@ *

If the {@code '#'} flag is given then a {@link * FormatFlagsConversionMismatchException} will be thrown. * - *

{@code 'o'} + *
{@code 'o'} * '\u006f' * Formats the argument as an integer in base eight. No localization * is applied. @@ -962,7 +962,7 @@ * are given then a {@link FormatFlagsConversionMismatchException} will be * thrown. * - *
{@code 'x'} + *
{@code 'x'} * '\u0078' * Formats the argument as an integer in base sixteen. No * localization is applied. @@ -985,7 +985,7 @@ * {@code ','} flags are given then a {@link * FormatFlagsConversionMismatchException} will be thrown. * - *
{@code 'X'} + *
{@code 'X'} * '\u0058' * The upper-case variant of {@code 'x'}. The entire string * representing the number will be converted to {@linkplain @@ -1012,7 +1012,7 @@ *
intFlags
{@code '+'} + *
{@code '+'} * '\u002b' * Requires the output to include a positive sign for all positive * numbers. If this flag is not given then only negative values will @@ -1021,7 +1021,7 @@ *

If both the {@code '+'} and '  ' flags are given * then an {@link IllegalFormatFlagsException} will be thrown. * - *

'  ' + *
'  ' * '\u0020' * Requires the output to include a single extra space * ('\u0020') for non-negative values. @@ -1029,7 +1029,7 @@ *

If both the {@code '+'} and '  ' flags are given * then an {@link IllegalFormatFlagsException} will be thrown. * - *

{@code '0'} + *
{@code '0'} * '\u0030' * Requires the output to be padded with leading {@linkplain * java.text.DecimalFormatSymbols#getZeroDigit zeros} to the minimum field @@ -1040,14 +1040,14 @@ *

If both the {@code '-'} and {@code '0'} flags are given then an * {@link IllegalFormatFlagsException} will be thrown. * - *

{@code ','} + *
{@code ','} * '\u002c' * Requires the output to include the locale-specific {@linkplain * java.text.DecimalFormatSymbols#getGroupingSeparator group separators} as * described in the "group" section of the * localization algorithm. * - *
{@code '('} + *
{@code '('} * '\u0028' * Requires the output to prepend a {@code '('} * ('\u0028') and append a {@code ')'} @@ -1093,7 +1093,7 @@ *
bIntConv
{@code 'd'} + *
{@code 'd'} * '\u0064' * Requires the output to be formatted as a decimal integer. The localization algorithm is applied. @@ -1101,7 +1101,7 @@ *

If the {@code '#'} flag is given {@link * FormatFlagsConversionMismatchException} will be thrown. * - *

{@code 'o'} + *
{@code 'o'} * '\u006f' * Requires the output to be formatted as an integer in base eight. * No localization is applied. @@ -1124,7 +1124,7 @@ *

If the {@code ','} flag is given then a {@link * FormatFlagsConversionMismatchException} will be thrown. * - *

{@code 'x'} + *
{@code 'x'} * '\u0078' * Requires the output to be formatted as an integer in base * sixteen. No localization is applied. @@ -1148,7 +1148,7 @@ *

If the {@code ','} flag is given then a {@link * FormatFlagsConversionMismatchException} will be thrown. * - *

{@code 'X'} + *
{@code 'X'} * '\u0058' * The upper-case variant of {@code 'x'}. The entire string * representing the number will be converted to {@linkplain @@ -1190,7 +1190,7 @@ *
floatConv
{@code 'e'} + *
{@code 'e'} * '\u0065' * Requires the output to be formatted using computerized scientific notation. The If the {@code ','} flag is given, then an {@link * FormatFlagsConversionMismatchException} will be thrown. * - *
{@code 'E'} + *
{@code 'E'} * '\u0045' * The upper-case variant of {@code 'e'}. The exponent symbol * will be {@code 'E'} ('\u0045'). * - *
{@code 'g'} + *
{@code 'g'} * '\u0067' * Requires the output to be formatted in general scientific notation * as described below. The localization @@ -1268,11 +1268,11 @@ *

If the {@code '#'} flag is given then an {@link * FormatFlagsConversionMismatchException} will be thrown. * - *

{@code 'G'} + *
{@code 'G'} * '\u0047' * The upper-case variant of {@code 'g'}. * - *
{@code 'f'} + *
{@code 'f'} * '\u0066' * Requires the output to be formatted using decimal * format. The localization algorithm is @@ -1304,7 +1304,7 @@ * Float#toString(float)} or {@link Double#toString(double)} as * appropriate. * - *
{@code 'a'} + *
{@code 'a'} * '\u0061' * Requires the output to be formatted in hexadecimal exponential * form. No localization is applied. @@ -1357,7 +1357,7 @@ *

If the {@code '('} or {@code ','} flags are given, then a {@link * FormatFlagsConversionMismatchException} will be thrown. * - *

{@code 'A'} + *
{@code 'A'} * '\u0041' * The upper-case variant of {@code 'a'}. The entire string * representing the number will be converted to upper case including the @@ -1427,7 +1427,7 @@ *
floatConv
{@code 'e'} + *
{@code 'e'} * '\u0065' * Requires the output to be formatted using computerized scientific notation. The If the {@code ','} flag is given, then an {@link * FormatFlagsConversionMismatchException} will be thrown. * - *
{@code 'E'} + *
{@code 'E'} * '\u0045' * The upper-case variant of {@code 'e'}. The exponent symbol * will be {@code 'E'} ('\u0045'). * - *
{@code 'g'} + *
{@code 'g'} * '\u0067' * Requires the output to be formatted in general scientific notation * as described below. The localization @@ -1499,11 +1499,11 @@ *

If the {@code '#'} flag is given then an {@link * FormatFlagsConversionMismatchException} will be thrown. * - *

{@code 'G'} + *
{@code 'G'} * '\u0047' * The upper-case variant of {@code 'g'}. * - *
{@code 'f'} + *
{@code 'f'} * '\u0066' * Requires the output to be formatted using decimal * format. The localization algorithm is @@ -1554,10 +1554,10 @@ *
DTConv
{@code 't'} + *
{@code 't'} * '\u0074' * Prefix for date and time conversion characters. - *
{@code 'T'} + *
{@code 'T'} * '\u0054' * The upper-case variant of {@code 't'}. * @@ -1577,52 +1577,52 @@ *
time
{@code 'H'} + *
{@code 'H'} * '\u0048' * Hour of the day for the 24-hour clock, formatted as two digits with * a leading zero as necessary i.e. {@code 00 - 23}. {@code 00} * corresponds to midnight. * - *
{@code 'I'} + *
{@code 'I'} * '\u0049' * Hour for the 12-hour clock, formatted as two digits with a leading * zero as necessary, i.e. {@code 01 - 12}. {@code 01} corresponds to * one o'clock (either morning or afternoon). * - *
{@code 'k'} + *
{@code 'k'} * '\u006b' * Hour of the day for the 24-hour clock, i.e. {@code 0 - 23}. * {@code 0} corresponds to midnight. * - *
{@code 'l'} + *
{@code 'l'} * '\u006c' * Hour for the 12-hour clock, i.e. {@code 1 - 12}. {@code 1} * corresponds to one o'clock (either morning or afternoon). * - *
{@code 'M'} + *
{@code 'M'} * '\u004d' * Minute within the hour formatted as two digits with a leading zero * as necessary, i.e. {@code 00 - 59}. * - *
{@code 'S'} + *
{@code 'S'} * '\u0053' * Seconds within the minute, formatted as two digits with a leading * zero as necessary, i.e. {@code 00 - 60} ("{@code 60}" is a special * value required to support leap seconds). * - *
{@code 'L'} + *
{@code 'L'} * '\u004c' * Millisecond within the second formatted as three digits with * leading zeros as necessary, i.e. {@code 000 - 999}. * - *
{@code 'N'} + *
{@code 'N'} * '\u004e' * Nanosecond within the second, formatted as nine digits with leading * zeros as necessary, i.e. {@code 000000000 - 999999999}. The precision * of this value is limited by the resolution of the underlying operating * system or hardware. * - *
{@code 'p'} + *
{@code 'p'} * '\u0070' * Locale-specific {@linkplain * java.text.DateFormatSymbols#getAmPmStrings morning or afternoon} marker @@ -1632,7 +1632,7 @@ * GNU {@code date} and POSIX {@code strftime(3c)} which produce * upper-case output.) * - *
{@code 'z'} + *
{@code 'z'} * '\u007a' * RFC 822 * style numeric time zone offset from GMT, e.g. {@code -0800}. This @@ -1641,7 +1641,7 @@ * the {@linkplain TimeZone#getDefault() default time zone} for this * instance of the Java virtual machine. * - *
{@code 'Z'} + *
{@code 'Z'} * '\u005a' * A string representing the abbreviation for the time zone. This * value will be adjusted as necessary for Daylight Saving Time. For @@ -1650,13 +1650,13 @@ * instance of the Java virtual machine. The Formatter's locale will * supersede the locale of the argument (if any). * - *
{@code 's'} + *
{@code 's'} * '\u0073' * Seconds since the beginning of the epoch starting at 1 January 1970 * {@code 00:00:00} UTC, i.e. {@code Long.MIN_VALUE/1000} to * {@code Long.MAX_VALUE/1000}. * - *
{@code 'Q'} + *
{@code 'Q'} * '\u004f' * Milliseconds since the beginning of the epoch starting at 1 January * 1970 {@code 00:00:00} UTC, i.e. {@code Long.MIN_VALUE} to @@ -1672,68 +1672,68 @@ *
date
{@code 'B'} + *
{@code 'B'} * '\u0042' * Locale-specific {@linkplain java.text.DateFormatSymbols#getMonths * full month name}, e.g. {@code "January"}, {@code "February"}. * - *
{@code 'b'} + *
{@code 'b'} * '\u0062' * Locale-specific {@linkplain * java.text.DateFormatSymbols#getShortMonths abbreviated month name}, * e.g. {@code "Jan"}, {@code "Feb"}. * - *
{@code 'h'} + *
{@code 'h'} * '\u0068' * Same as {@code 'b'}. * - *
{@code 'A'} + *
{@code 'A'} * '\u0041' * Locale-specific full name of the {@linkplain * java.text.DateFormatSymbols#getWeekdays day of the week}, * e.g. {@code "Sunday"}, {@code "Monday"} * - *
{@code 'a'} + *
{@code 'a'} * '\u0061' * Locale-specific short name of the {@linkplain * java.text.DateFormatSymbols#getShortWeekdays day of the week}, * e.g. {@code "Sun"}, {@code "Mon"} * - *
{@code 'C'} + *
{@code 'C'} * '\u0043' * Four-digit year divided by {@code 100}, formatted as two digits * with leading zero as necessary, i.e. {@code 00 - 99} * - *
{@code 'Y'} + *
{@code 'Y'} * '\u0059' Year, formatted to at least * four digits with leading zeros as necessary, e.g. {@code 0092} equals * {@code 92} CE for the Gregorian calendar. * - *
{@code 'y'} + *
{@code 'y'} * '\u0079' * Last two digits of the year, formatted with leading zeros as * necessary, i.e. {@code 00 - 99}. * - *
{@code 'j'} + *
{@code 'j'} * '\u006a' * Day of year, formatted as three digits with leading zeros as * necessary, e.g. {@code 001 - 366} for the Gregorian calendar. * {@code 001} corresponds to the first day of the year. * - *
{@code 'm'} + *
{@code 'm'} * '\u006d' * Month, formatted as two digits with leading zeros as necessary, * i.e. {@code 01 - 13}, where "{@code 01}" is the first month of the * year and ("{@code 13}" is a special value required to support lunar * calendars). * - *
{@code 'd'} + *
{@code 'd'} * '\u0064' * Day of month, formatted as two digits with leading zeros as * necessary, i.e. {@code 01 - 31}, where "{@code 01}" is the first day * of the month. * - *
{@code 'e'} + *
{@code 'e'} * '\u0065' * Day of month, formatted as two digits, i.e. {@code 1 - 31} where * "{@code 1}" is the first day of the month. @@ -1748,30 +1748,30 @@ *
composites
{@code 'R'} + *
{@code 'R'} * '\u0052' * Time formatted for the 24-hour clock as {@code "%tH:%tM"} * - *
{@code 'T'} + *
{@code 'T'} * '\u0054' * Time formatted for the 24-hour clock as {@code "%tH:%tM:%tS"}. * - *
{@code 'r'} + *
{@code 'r'} * '\u0072' * Time formatted for the 12-hour clock as {@code "%tI:%tM:%tS * %Tp"}. The location of the morning or afternoon marker * ({@code '%Tp'}) may be locale-dependent. * - *
{@code 'D'} + *
{@code 'D'} * '\u0044' * Date formatted as {@code "%tm/%td/%ty"}. * - *
{@code 'F'} + *
{@code 'F'} * '\u0046' * ISO 8601 * complete date formatted as {@code "%tY-%tm-%td"}. * - *
{@code 'c'} + *
{@code 'c'} * '\u0063' * Date and time formatted as {@code "%ta %tb %td %tT %tZ %tY"}, * e.g. {@code "Sun Jul 20 16:17:00 EDT 1969"}. @@ -1802,7 +1802,7 @@ *
DTConv
{@code '%'} + *
{@code '%'} * The result is a literal {@code '%'} ('\u0025') * *

The width is the minimum number of characters to @@ -1830,7 +1830,7 @@ *

DTConv
{@code 'n'} + *
{@code 'n'} * the platform-specific line separator as returned by {@link * System#lineSeparator()}. * --- old/src/java.base/share/classes/java/util/GregorianCalendar.java 2017-07-11 14:33:54.357021477 -0700 +++ new/src/java.base/share/classes/java/util/GregorianCalendar.java 2017-07-11 14:33:54.157012750 -0700 @@ -163,83 +163,83 @@ *
GregorianCalendar default field values
+ * * Field * + * Default Value *
+ * * ERA - * + * * AD *
+ * * YEAR - * + * * 1970 *
+ * * MONTH - * + * * JANUARY *
+ * * DAY_OF_MONTH - * + * * 1 *
+ * * DAY_OF_WEEK - * + * * the first day of week *
+ * * WEEK_OF_MONTH - * + * * 0 *
+ * * DAY_OF_WEEK_IN_MONTH - * + * * 1 *
+ * * AM_PM - * + * * AM *
+ * * HOUR, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND - * + * * 0 *
* * - * + * * * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * * *
Grandfathered tags with canonical replacements
grandfathered tagmodern replacement
grandfathered tagmodern replacement
art-lojbanjbo
i-amiami
i-bnnbnn
i-hakhak
i-klingontlh
i-luxlb
i-navajonv
i-pwnpwn
i-taotao
i-taytay
i-tsutsu
no-boknb
no-nynnn
sgn-BE-FRsfb
sgn-BE-NLvgt
sgn-CH-DEsgg
zh-guoyucmn
zh-hakkahak
zh-min-nannan
zh-xianghsn
art-lojbanjbo
i-amiami
i-bnnbnn
i-hakhak
i-klingontlh
i-luxlb
i-navajonv
i-pwnpwn
i-taotao
i-taytay
i-tsutsu
no-boknb
no-nynnn
sgn-BE-FRsfb
sgn-BE-NLvgt
sgn-CH-DEsgg
zh-guoyucmn
zh-hakkahak
zh-min-nannan
zh-xianghsn
* @@ -1622,15 +1622,15 @@ * * * - * + * * * - * - * - * - * - * - * + * + * + * + * + * + * * *
Grandfathered tags with no modern replacement
grandfathered tagconverts to
grandfathered tagconverts to
cel-gaulishxtg-x-cel-gaulish
en-GB-oeden-GB-x-oed
i-defaulten-x-i-default
i-enochianund-x-i-enochian
i-mingosee-x-i-mingo
zh-minnan-x-zh-min
cel-gaulishxtg-x-cel-gaulish
en-GB-oeden-GB-x-oed
i-defaulten-x-i-default
i-enochianund-x-i-enochian
i-mingosee-x-i-mingo
zh-minnan-x-zh-min
* @@ -2778,16 +2778,16 @@ *
Filtering method behavior
Filtering ModeLanguage Priority List: {@code "de-DE"}Language Priority List: {@code "de-*-DE"}Filtering ModeLanguage Priority List: {@code "de-DE"}Language Priority List: {@code "de-*-DE"}
+ * * {@link FilteringMode#AUTOSELECT_FILTERING AUTOSELECT_FILTERING} - * + * * Performs basic filtering and returns {@code "de-DE"} and * {@code "de-DE-1996"}. @@ -2799,9 +2799,9 @@ *
+ * * {@link FilteringMode#EXTENDED_FILTERING EXTENDED_FILTERING} - * + * * Performs extended filtering and returns {@code "de-DE"}, * {@code "de-Deva-DE"}, {@code "de-DE-1996"}, {@code "de-Latn-DE"}, and @@ -2810,9 +2810,9 @@ * Same as above.
+ * * {@link FilteringMode#IGNORE_EXTENDED_RANGES IGNORE_EXTENDED_RANGES} - * + * * Performs basic filtering and returns {@code "de-DE"} and * {@code "de-DE-1996"}. @@ -2823,9 +2823,9 @@ *
+ * * {@link FilteringMode#MAP_EXTENDED_RANGES MAP_EXTENDED_RANGES} - * + * Same as above. * Performs basic filtering and returns {@code "de-DE"} and @@ -2834,9 +2834,9 @@ *
+ * * {@link FilteringMode#REJECT_EXTENDED_RANGES REJECT_EXTENDED_RANGES} - * + * Same as above. * Throws {@link IllegalArgumentException} because {@code "de-*-DE"} is --- old/src/java.base/share/classes/javax/net/ssl/SSLPermission.java 2017-07-11 14:33:55.521072268 -0700 +++ new/src/java.base/share/classes/javax/net/ssl/SSLPermission.java 2017-07-11 14:33:55.321063541 -0700 @@ -48,15 +48,15 @@ *
permission name, what it allows, and associated risks
Permission Target NameWhat the Permission AllowsRisks of Allowing this PermissionPermission Target NameWhat the Permission AllowsRisks of Allowing this Permission
setHostnameVerifiersetHostnameVerifierThe ability to set a callback which can decide whether to * allow a mismatch between the host being connected to by * an HttpsURLConnection and the common name field in @@ -70,7 +70,7 @@ *
getSSLSessionContextgetSSLSessionContextThe ability to get the SSLSessionContext of an SSLSession. * Malicious code may monitor sessions which have been established @@ -79,7 +79,7 @@ *
setDefaultSSLContextsetDefaultSSLContextThe ability to set the default SSL context * Malicious code can set a context that monitors the opening of