harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Okomin (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-1158) [classlib][luni]Compatibility: java.net.URL new URL("ss", null, -3, null) throws MalformedURLException while RI throws NPE
Date Fri, 11 Aug 2006 10:37:15 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-1158?page=comments#action_12427497 ] 
            
Ilya Okomin commented on HARMONY-1158:
--------------------------------------

I believe this case is implementation dependent. If you look in the spec you can find phrase
"No validation of the inputs is performed by this constructor." at the end. Thus all thrown
exceptions during initialization is based on the inner logics. To be compatible with the RI
we have to have the same inner logics that is impossible, because of it is private.
I was trying to catch this logics based on the constructor playing with arguments combination
(correct/incorrect) and found that it is not trivial on RI:
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

As you can see: in 2 and 4 host is null, but we throw different exceptions.
If we assume that NPE depends on file ?= null (see 2 and 5) than it is false for the 1 case!!

I would suggest not to make any changes in the URL class constructor if existed implementation
of URL class works correct and passes other unit tests.


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

        

Mime
View raw message