You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Andrew Zhang <zh...@gmail.com> on 2006/09/13 07:00:41 UTC

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

From: Andrew Zhang (JIRA) <ji...@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