harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Zhang" <zhanghuang...@gmail.com>
Subject Re: [classlib][luni] java.net.URL(String, String, int, String) constructor exception thrown sequence (was re: [jira] Commented: (HARMONY-1158) [classlib][luni]Compatibility: java.net.URL new URL("ss", null, -3, null) throws MalformedURLException whil
Date Thu, 14 Sep 2006 10:04:49 GMT
There are two reasons:

1. Spec has explicitly pointed out "No validation of the inputs is performed
by this constructor."

2. The exception thrown sequence is really hard to follow, as described by
Ilya, see examples below:

1. new URL("ss", "0", -3, null);
java.net.MalformedURLException: Invalid port number :-3

2. new URL("ss", null, -3, null);
java.lang.NullPointerException

3. new URL("ss", "0", -3, "file");
java.net.MalformedURLException: Invalid port number :-3

4. new URL("ss", null, -3, "file");
java.net.MalformedURLException: unknown protocol: ss

5. new URL("ss", "0", -1, null);
java.lang.NullPointerException

Yes, we should follow RI for exception thrown sequence if possible. But for
thise case, would anyone suggest how to throw exception to follow RI?





On 9/14/06, Mikhail Loenko <mloenko@gmail.com> wrote:
>
> It's not clear why it should be non-bug diff?
>
> Shouldn't it be fixed to follow RI?
>
> Thanks,
> Mikhail
>
> 2006/9/14, Andrew Zhang <zhanghuangzhu@gmail.com>:
> > Would any commiter like to confirm and close this "non-bug differences
> from
> > RI" jira? Thanks!
> >
> > On 9/13/06, Andrew Zhang <zhanghuangzhu@gmail.com> wrote:
> > >
> > > From: Andrew Zhang (JIRA) <jira@apache.org>
> > > Date: Sep 13, 2006 11:02 AM
> > > Subject: [jira] Commented: (HARMONY-1158)
> [classlib][luni]Compatibility:
> > > java.net.URL new URL("ss", null, -3, null) throws
> MalformedURLException
> > > while RI throws NPE
> > > To: harmony-commits@incubator.apache.org
> > >
> > >    [
> > >
> http://issues.apache.org/jira/browse/HARMONY-1158?page=comments#action_12434348
> ]
> > >
> > > Andrew Zhang commented on HARMONY-1158:
> > > ---------------------------------------
> > >
> > > Ilya, I agree with you. Spec has explicitly pointed out "No validation
> of
> > > the inputs is performed by this constructor."
> > >
> > > The tests show that the exception thrown sequence is uncertain and
> > > implemention-dependent.
> > >
> > > If no application and test cases are broken by currenty Harmony code,
> I
> > > suggest not fix the problem.
> > >
> > > Best regards,
> > > Andrew
> > >
> > > > [classlib][luni]Compatibility: java.net.URL new URL("ss", null, -3,
> > > null) throws MalformedURLException while RI throws NPE
> > > >
> > >
> --------------------------------------------------------------------------------------------------------------------------
> > > >
> > > >                 Key: HARMONY-1158
> > > >                 URL:
> http://issues.apache.org/jira/browse/HARMONY-1158
> > > >             Project: Harmony
> > > >          Issue Type: Bug
> > > >          Components: Non-bug differences from RI
> > > >            Reporter: Ilya Okomin
> > > >
> > > > Compatibility. Different order of exceptions.
> > > > RI throws unspecified NPE in java.net.URL("ss", null, -3, null)
> > > constructor if host ==null while Harmony at first checks port and
> throws
> > > MalformedURLException.
> > > > If host != null both RI and Harmony throw MalformedURLException.
> > > > =============test.java=============
> > > > import java.net.*;
> > > > public class test  {
> > > >     public static void main (String[] args) {
> > > >        try {
> > > >             new URL("ss", "0", -3, null);
> > > >        } catch (Exception e) {
> > > >            e.printStackTrace();
> > > >        }
> > > >        try {
> > > >             new URL("ss", null, -3, null);
> > > >        } catch (Exception e) {
> > > >            e.printStackTrace();
> > > >        }
> > > >     }
> > > > }
> > > > =======================================
> > > > Output on RI:
> > > > java.net.MalformedURLException : Invalid port number :-3
> > > >         at java.net.URL.<init>(URL.java:373)
> > > >         at java.net.URL.<init>(URL.java:283)
> > > >         at test.main(test.java:7)
> > > > java.lang.NullPointerException
> > > >         at java.net.Parts.<init>(URL.java:1259)
> > > >         at java.net.URL.<init>(URL.java:380)
> > > >         at java.net.URL.<init>(URL.java:283)
> > > >         at test.main(test.java:13)
> > > > Output on Harmony:
> > > > java.net.MalformedURLException: Port out of range: -3
> > > >         at java.net.URL.<init>(URL.java:393)
> > > >         at java.net.URL.<init>(URL.java:367)
> > > >         at test.main(test.java:7)
> > > > java.net.MalformedURLException: Port out of range: -3
> > > >         at java.net.URL.<init>(URL.java:393)
> > > >         at java.net.URL.<init>(URL.java:367)
> > >
> > > --
> > > This message is automatically generated by JIRA.
> > > -
> > > If you think it was sent incorrectly contact one of the
> administrators:
> > > http://issues.apache.org/jira/secure/Administrators.jspa
> > > -
> > > For more information on JIRA, see:
> http://www.atlassian.com/software/jira
> > >
> > >
> > >
> > >
> > >
> > > --
> > > Andrew Zhang
> > > China Software Development Lab, IBM
> > >
> >
> >
> >
> > --
> > Andrew Zhang
> > China Software Development Lab, IBM
> >
> >
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>


-- 
Andrew Zhang
China Software Development Lab, IBM

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message