I have posted an updated webrev
http://cr.openjdk.java.net/~bpb/7179567/webrev.3/ which I hope addresses all
the concerns expressed below.
Please see also my comments in line.
Once this looks acceptable I can do the CCC request.
Thanks,
Brian
On Oct 7, 2013, at 9:28 PM, David Holmes wrote:
Aside: I'm confused about the relationship of this bug and JDK-6445180 - are
they not duplicates? Seems to me this one should have been closed as a dup when
it was reported.
I think you are correct. I can adjust this once the webrev is approved.
On 5/10/2013 6:58 AM, Brian Burkhalter wrote:
On Oct 3, 2013, at 5:38 PM, Brian Burkhalter wrote:
On Oct 3, 2013, at 5:35 PM, Alan Bateman wrote:
On 03/10/2013 16:10, Brian Burkhalter wrote:
Please review and comment at your convenience.
Issue: https://bugs.openjdk.java.net/browse/JDK-7179567
Webrev: http://cr.openjdk.java.net/~bpb/7179567/
An updated webrev which I hope adequately addresses the expressed concerns may
be found at:
http://cr.openjdk.java.net/~bpb/7179567.2/
URLClassLoader.java: please delete the commented out line:
+ //Objects.requireNonNull(urls);
I already fixed that but had not updated the webrev.
SecureClassLoader.java:
186 * @throws SecurityException if the {@code ClassLoader} instance is not
187 * initialized.
should read "this classloader instance" as it refers to the current instance. Also this
may be bringing the spec into line with the implementation but "initialization" here is
purely an implementation detail not part of the specification for this class so it should not be
mentioned explicitly - and this change still needs a CCC (which might help determine exactly what
should be said here - I'm unclear how you can try to call getPermissions if this is uninitialized
as it would need 'this' to escape from the constructor - which perhaps it can do via a third-party
security manager?).
I've removed this @throws clause.
NoCallStackClassLoader.java: the comment is far too verbose, we don't write
such explanatory kinds of comments for this kind of thing (else the code would
be overrun with commentary!).
Shortened.
Aside: if you are a JDK Author you don't need a Contributed-by line in the
commit comments.
Removed.
On Oct 8, 2013, at 4:08 AM, Alan Bateman wrote:
This looks much better.
If I read the code correctly then the long standing behavior of
URLClassLoader.getPermissions(null) was to throw a NPE, now it is changed to
return the empty collection in order to match the super type
(SecureClassLoader). I can't think of anything that would break so this is
probably okay, just maybe a bit surprising.
My previous comment on @throws vs. @exception was just to keep things
consistent as this is old code and would look odd for a method to use both. Our
preference is to switch to @throws whenever the opportunity arises. The comment
was also on the alignment/style. Take URLCLassLoader(URL[], ClassLoader) for
example, the existing SecurityException has its description aligned under
SecurityException whereas the new NullPointerException wraps around. So my
overall comment here was to avoid mixing styles (it doesn't matter too much
which style is used, just keep it consistent for future maintainers).
In the test then it might be better to change the @summary line to only include
the second paragraph (the bug summary is not interesting, especially when it
references a test that is not in OpenJDK).
Updated.
On Oct 8, 2013, at 8:53 AM, Chris Hegarty wrote:
Yes, this is much nicer.
I'd be tempted to write another private constructor, taking all args, and
checking params with checkForNullURLs before invoking, similar to ThreadGroup
[1] L117, for example. But that is just clean up to remove some duplication. No
need to do this.
If I read the code correctly then the long standing behavior of
URLClassLoader.getPermissions(null) was to throw a NPE, now it is
changed to return the empty collection in order to match the super type
(SecureClassLoader). I can't think of anything that would break so this
is probably okay, just maybe a bit surprising.
Agreed.
My previous comment on @throws vs. @exception was just to keep things
consistent as this is old code and would look odd for a method to use
both. Our preference is to switch to @throws whenever the opportunity
arises. The comment was also on the alignment/style. Take
URLCLassLoader(URL[], ClassLoader) for example, the existing
SecurityException has its description aligned under SecurityException
whereas the new NullPointerException wraps around. So my overall comment
here was to avoid mixing styles (it doesn't matter too much which style
is used, just keep it consistent for future maintainers).
Right, these classes are prime for stylistic clean up early in 9. For now, keep
things locally consistent ( even if that is old style ).
-Chris.
[1]
http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/9f57d2774603/src/share/classes/java/lang/ThreadGroup.java