From: Michael Koch Date: Tue, 11 Jan 2005 20:40:10 +0000 (+0000) Subject: re PR libgcj/13972 (gcj's URL() does not handle ContextURL + "/redir?http://domain2... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=198f8870f23870485115ec91db50c0e172525889;p=gcc.git re PR libgcj/13972 (gcj's URL() does not handle ContextURL + "/redir?domain2.com/index.html" correctly.) 2005-01-11 Michael Koch PR libgcj/13972 * java/net/URL.java (URL): Handle specs like "/redir?http://domain2.com/index.html" which start with a slash. From-SVN: r93197 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 3c962937681..918f99f087d 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2005-01-11 Michael Koch + + PR libgcj/13972 + * java/net/URL.java (URL): Handle specs like + "/redir?http://domain2.com/index.html" which start with a slash. + 2005-01-11 Michael Koch PR libgcj/14012, PR libgcj/14013, PR libgcj/15157, PR libgcj/15509 diff --git a/libjava/java/net/URL.java b/libjava/java/net/URL.java index 4353662908a..96f97991280 100644 --- a/libjava/java/net/URL.java +++ b/libjava/java/net/URL.java @@ -392,13 +392,14 @@ public final class URL implements Serializable // right after the "://". The second colon is for an optional port value // and implies that the host from the context is used if available. int colon; + int slash = spec.indexOf('/'); if ((colon = spec.indexOf("://", 1)) > 0 + && ((colon < slash || slash < 0)) && ! spec.regionMatches(colon, "://:", 0, 4)) context = null; - int slash; if ((colon = spec.indexOf(':')) > 0 - && (colon < (slash = spec.indexOf('/')) || slash < 0)) + && (colon < slash || slash < 0)) { // Protocol specified in spec string. protocol = spec.substring(0, colon).toLowerCase(); @@ -429,8 +430,6 @@ public final class URL implements Serializable authority = context.authority; } else // Protocol NOT specified in spec. and no context available. - - throw new MalformedURLException("Absolute URL required with null context"); protocol = protocol.trim();