Hi Andreas,

Your changes look good to me. 5069130 had been closed as not a defect - since we throw an unchecked exception, and was decided to be the right course of action. Now, I don't have a problem with changing the code to throw a checked exception in this case - but we have to wait for an OpenJDK reviewer to agree as well.

My only suggestion is to add a good message to the IOException being thrown, so that it is clear that the URL sent by the server is problematic and make debugging easier. In the test, the first RuntimeException message being
printed in line 46 is probably misleading, but this is a minor issue.

I'll wait for a JDK reviewer's input on this. I can sponsor the change for you. We may need an internal approval here
for the minor API change.

Thanks,
- Kurchi

On 6/24/2013 12:42 PM, Andreas Rieber wrote:
Hi,

here a small fix for 2 older issues. First i wrote the test for wrong
URL at connection time and at redirect time.

Bug(s):
http://bugs.sun.com/view_bug.do?bug_id=6563286
http://bugs.sun.com/view_bug.do?bug_id=5069130

Webrev:
http://cr.openjdk.java.net/~arieber/6563286/webrev.00/

What happens is that the java.net.ProxySelector.select(URI uri) is
called, which throws the IllegalArgumentException if uri is null. But
it uses sun.net.spi.DefaultProxySelector.java and also throws the
exception if uri.getScheme() is null or uri.getHost() is null. I
updated the javadoc in ProxySelector.

To change the exception to an IOException would mean a wider
refactoring and API change, not good. So i checked down to
net.www.protocol.http.HttpURLConnection.java.

There the IllegalArgumentException can be caught and thrown as
IOException. This will handle wrong URLs in both cases (connect and
redirect). I checked also all other possible cases but they are
handled with correct exceptions.

I run all tests on ubuntu, so a test run on all relevant platforms is
required.

thanks for checking this one
Andreas

--
-Kurchi

Reply via email to