Hi
I don't think the URL string http://server:-1/path can be considered
a valid URL as the port value -1 is not legal port value.
However, the URL class doesn't object and throw a MalformedURLException,
which is something of an
anomaly, caused by the spec allowing a port value of -1 for the 4 arg
constructor, which maps to
the default value for the associated protocol. Using an input port
value of -1 is unnecessary, as the 3 arg constructor
is sufficient to specify a URL with a default port value. It would seem
more appropriate to encapsulate the
-1 value as an implementation detail.
A further anomaly arises when a subsequent getPort() method is invoked,
and this returns a value of -1, rather than
the protocol's associated default value. The -1 doesn't seem to activate
until a connection is made using the URL's details.
a more generalized description for MalformedURLException could be
used, e.g.
if the parsed URL fails to comply with the scheme specific syntax of the
associated protocol.
regards
Mark
On 10/09/2015 20:32, Sebastian Sickelmann wrote:
Hi,
first thanks to Chris and David for their helpful input . I looked
through the existing
Testcases and found one that is already testing for negative-port numbers.
So i extended the @bug line with "4906983" which I hope is the right
solution to do it.
I am with Chris, when he says normally you only have numbers between 1 and
65535 (because many protocols are using tcp). So i changed to
documentation as
Chris suggested it.
But ports above this "natural" barrier are valid too. It depends on
the protocol what
to do with the port information. So I also extended the testcase to
check that their are
valid port numbers also above 65535 and the special -1.
But i asked myself should
new URL("http://server:-1/path");
be realy a valid URL? What do you think?
Special thanks to David who hosted the new webrev:
http://cr.openjdk.java.net/~dbuck/4906983.1/
-- Sebastian
Am 10.09.2015 um 12:38 schrieb Chris Hegarty:
Another minor comment...
While what you have suggested is not incorrect, Iām afraid it is giving the
wrong impression about the typical acceptable port ranges. A port of
Integer.MAX_VALUE is not all that useful, since it typically maps to a TCP port
number ( but not always ). Maybe just remove the valid values from @param port,
and add something like the following to MalformedURLException: ā.., or the port
is a negative number other than -1ā ?
-Chris.
On 10 Sep 2015, at 11:13, Chris Hegarty<chris.hega...@oracle.com> wrote:
On 8 Sep 2015, at 21:01, Sebastian Sickelmann<sebastian.sickelm...@gmx.de>
wrote:
Hi,
Please find my small patch[1] to javadoc in java.net.URL that adresses
JDK-4906983(javadoc-fix)[2].
I signed the SCA/OCA some time ago. Feel free to check at the OCA
Signatures-List[3]
thanks to david buck for hosting this patch on cr.openjdk.java.net.
-- Sebastian Sickelmann
[1]http://cr.openjdk.java.net/~dbuck/4906983.0/
Just to confirm this is a spec only change, that documents long standing
existing behaviour, right?
I think we should add a minimal testcase to cover this.
Thanks,
-Chris.
[2]https://bugs.openjdk.java.net/browse/JDK-4906983
[3]http://www.oracle.com/technetwork/community/oca-486395.html