Looks fine overall. I think it’s useful to add a section header “Multi-Release JAR File” in JarFile class specification that URLClassLoader can link to directly when referring “multi-release JAR file” and other specs can make use of too.
Then the following statement is not needed. > (See {@link JarFile} for further details on multi-release JAR files.) Mandy > On Nov 3, 2016, at 3:37 PM, Paul Sandoz <paul.san...@oracle.com> wrote: > > Hi, > > Please review these specification clarifications for multi-release JARs. They > are small and two are closely interrelated so though it would be best to > aggregate them in one email. > > Thanks, > Paul. > > > 8166914 URLClassLoader spec needs to mention that it's MR-aware > > diff -r 52d732262bfa src/java.base/share/classes/java/net/URLClassLoader.java > --- a/src/java.base/share/classes/java/net/URLClassLoader.java Thu Nov > 03 13:06:24 2016 -0700 > +++ b/src/java.base/share/classes/java/net/URLClassLoader.java Thu Nov > 03 15:35:29 2016 -0700 > @@ -71,6 +71,10 @@ > * <p> > * The classes that are loaded are by default granted permission only to > * access the URLs specified when the URLClassLoader was created. > + * <p> > + * This class loader supports the loading of classes from the contents of a > + * multi-release JAR file that is referred to by a given URL. (See > + * {@link JarFile} for further details on multi-release JAR files.) > * > * @author David Connelly > * @since 1.2 > > > > 8165782 java.util.jar.JarFile.runtimeVersion() spec needs clarification > > diff -r 3faad5a1703e src/java.base/share/classes/java/util/jar/JarFile.java > --- a/src/java.base/share/classes/java/util/jar/JarFile.java Thu Nov 03 > 14:45:14 2016 -0700 > +++ b/src/java.base/share/classes/java/util/jar/JarFile.java Thu Nov 03 > 15:35:07 2016 -0700 > @@ -192,9 +192,10 @@ > public static final String MANIFEST_NAME = META_INF + "MANIFEST.MF"; > > /** > - * The version that represents the unversioned configuration of a > multi-release jar file. > + * Returns the version that represents the unversioned configuration of a > + * multi-release jar file. > * > - * @return Runtime.Version that represents the unversioned configuration > + * @return the version that represents the unversioned configuration > * > * @since 9 > */ > @@ -203,13 +204,16 @@ > } > > /** > - * The version that represents the effective runtime versioned > configuration of a > - * multi-release jar file. In most cases, {@code runtimeVersion()} is > equal to > - * {@code Runtime.version()}. However, if the {@code > jdk.util.jar.version} property is set, > - * {@code runtimeVersion()} is derived from that property and may not be > equal to > - * {@code Runtime.version()}. > + * Returns the version that represents the effective runtime versioned > + * configuration of a multi-release jar file. > + * <p> > + * By default the major version number of the returned {@code Version} > will > + * be equal to the major version number of {@code Runtime.version()}. > + * However, if the {@code jdk.util.jar.version} property is set, the > + * returned {@code Version} is derived from that property and major > version > + * numbers may not be equal. > * > - * @return Runtime.Version that represents the runtime versioned > configuration > + * @return the version that represents the runtime versioned > configuration > * > * @since 9 > */ > > > > 8166735 JarFile#getVersion spec clarification for unversioned jars > > diff -r 605bff618963 src/java.base/share/classes/java/util/jar/JarFile.java > --- a/src/java.base/share/classes/java/util/jar/JarFile.java Thu Nov 03 > 15:04:13 2016 -0700 > +++ b/src/java.base/share/classes/java/util/jar/JarFile.java Thu Nov 03 > 15:27:29 2016 -0700 > @@ -339,6 +339,10 @@ > > /** > * Returns the maximum version used when searching for versioned entries. > + * <p> > + * If this {@code JarFile} is not a multi-release jar file or is not > + * configured to be processed as such, then the version returned will be > the > + * same as that returned from {@link #baseVersion()}. > * > * @return the maximum version > * @since 9