Thank you for the comments Alan.

On 06/02/15 10:20, Alan Bateman wrote:
On 04/02/2015 15:11, Chris Hegarty wrote:
Agreed. Updated in-place

http://cr.openjdk.java.net/~chegar/8064924/03/specdiff/overview-summary.html

I think the approach and naming is good. A few small comments on the
wording:

1. "used to locate URLStreamHandlerProvider providers" - the wording
hints as further redirection, maybe it would be better as
"URLStreamHandlerProvider implementations".

Updated. ( result of previous refactoring )

2. "the ordering that providers are located" - maybe this should be "the
order that providers are located".

Updated. Thanks

3. "Some protocol, that are fundamental ...". Here's a re-worded
statement to consider:

"Some protocol handlers, for example those used for loading platform
classes or classes on the class path, may not be overridden. The details
of such restrictions, and when those restrictions apply (during
initialization of the runtime for example), are implementation specific
and therefore not specified".

This is better. Updated.

One other thing in this area is setURLStreamHandlerFactory(null). Long
standing behavior is to remove the system-wide URLStreamHandlerFactory,
should this continue?

setURLStreamHandlerFactory can be called many times with 'null', but once it is called with a non-null arg then it can never be called again ( it will throw ).

What I found was that code setting the pkg prefix property would call setURLStreamHandlerFactory(null) to clear the protocol handlers cache, and subsequent lookups would then consult the updated property. This is really only interesting if you plan to override existing protocols, and appears benign.

I have not changed this in the latest webrev. It seems like a corner case, and could be argued either way. The spec is less than clear about the expected behavior of this method when you pass it null.

Updated webrev [ spec and implementation] :
  http://cr.openjdk.java.net/~chegar/8064924/04/

Regarding jaxws, I suspect that I can simply reverse the changes in the webrev, and do nothing. Running on pre-JDK9 the property will continue to be set and used, on JDK9 and later the property will be set but ignored. I don't see that it is necessary anyway. Looks like technical debt. I'll file a separate issue for Miran to follow up and verify this.

-Chris.


-Alan

Reply via email to