harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stepan Mishura" <stepan.mish...@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:44:30 GMT
On 9/14/06, Alexey Petrenko wrote:
>
> 2006/9/14, Stepan Mishura :
> > On 9/14/06, Andrew Zhang wrote:
> > >
> > > There are two reasons:
> > >
> > > 1. Spec has explicitly pointed out "No validation of the inputs is
> > > performed
> > > by this constructor."
> >
> >
> >
> > In this spec. quotation above there is one thing that confuses me -
> "THIS
> > CONSTRUCTOR". May this mean that validation of inputs is perform, for
> > example, only by corresponding protocol handler?
> >
> > This looks logical because only protocol handler can verify whether
> params
> > are correct or not.
> Almost right. But if RI passes all the parameters to protocol handler
> then it should throw unknown protocol for all these cases. Since "ss"
> is unknown protocol.
> And you do not need a protocol handler to understand that port number
> can not have a negative value :)



Not agree. What if I add a custom protocol handler that accepts negative
port values?

Thanks,
Stepan.


> SY, Alexey
>
> >
> > Thanks,
> > Stepan.
> >
> > 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
>
>


-- 
Thanks,
Stepan Mishura
Intel Middleware Products Division

------------------------------------------------------
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

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