[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [cp-patches] RFC: prevent URL degeneration - v2
From: |
Robert Schuster |
Subject: |
Re: [cp-patches] RFC: prevent URL degeneration - v2 |
Date: |
Mon, 10 Oct 2005 00:31:07 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; de-AT; rv:1.7.12) Gecko/20051005 |
Hi,
as discussed on IRC the indenting of the last patch was wrong. This has been
fixed.
cu
Robert
Robert Schuster wrote:
> Hi all,
> as chris supposed I tried to find another (and better) way of fixing the URL
> class' toString problem which affects our XML parser.
>
> To make a long story short. Consider the following code fragment:
>
> u = new URL("file:////home/baz");
>
> u2 = new URL(u.toString());
>
> print(u2.toString());
>
> print(u2.getHome());
>
> On the JDK this will print
>
> file://home/baz
> home
>
> (This happens on the JDK as well as with Classpath.)
>
> Which is obviously not what file:////home/baz meant. The problem exists
> because
> URL.toString() does not care about superfluous leading slashes. With the
> attached patch Classpath will not have this problem anymore because
> superfluous
> leading slashes are carefully removed. The output will be:
>
> file:/home/baz
> <empty string>
>
> Fixes PR 24249.
>
> 2005-10-07 Robert Schuster <address@hidden>
>
> * java/net/URLStreamHandler.java:
> (toExternalForm): Remove superfluous leading slashes from URL
> paths.
>
> Ah yes. Please give me input about this patch. For me it fixes the problem
> with
> the application I was debugging.
>
> cu
> Robert
>
>
> ------------------------------------------------------------------------
>
> Index: java/net/URLStreamHandler.java
> ===================================================================
> RCS file: /cvsroot/classpath/classpath/java/net/URLStreamHandler.java,v
> retrieving revision 1.35
> diff -u -r1.35 URLStreamHandler.java
> --- java/net/URLStreamHandler.java 2 Oct 2005 22:58:41 -0000 1.35
> +++ java/net/URLStreamHandler.java 9 Oct 2005 20:48:59 -0000
> @@ -520,6 +520,25 @@
> sb.append("//").append(authority);
> }
>
> + // If we have superfluous leading slashes (that means, at least 2)
> + // we subsequently remove them and add a filepath with only one
> + // slash. In case that the filepath had none or one slash it is
> + // appended unchanged.
> + // By doing this we prevent that an URL with many superfluous
> + // leading slashes in the filepath degenerates into an URL
> + // where parts of the path become the host. Without that code
> + // new URL(new URL("file:////home/foo").toString()) would result
> + // in an URL instance which points to file://home/foo .
> + if ( file.startsWith("//") )
> + {
> + int slash = 1;
> + while ( file.charAt(slash+1) == '/' )
> + {
> + slash++;
> + }
> + sb.append(file.substring(slash));
> + }
> + else
> sb.append(file);
>
> if (ref != null)
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Classpath-patches mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/classpath-patches
- [cp-patches] RFC: prevent URL degeneration, Robert Schuster, 2005/10/09
- Re: [cp-patches] RFC: prevent URL degeneration - v2,
Robert Schuster <=
- Re: [cp-patches] RFC: prevent URL degeneration - v2, Mark Wielaard, 2005/10/09
- Re: [cp-patches] RFC: prevent URL degeneration - v2b, Robert Schuster, 2005/10/09
- Re: [cp-patches] RFC: prevent URL degeneration - v2b, Mark Wielaard, 2005/10/10
- Re: [cp-patches] RFC: prevent URL degeneration - v2b, Chris Burdess, 2005/10/10
- Re: [cp-patches] RFC: prevent URL degeneration - v2b, Mark Wielaard, 2005/10/10
- Re: [cp-patches] RFC: prevent URL degeneration - v3, Robert Schuster, 2005/10/10
- Re: [cp-patches] RFC: prevent URL degeneration - v3, Robert Schuster, 2005/10/13
- Re: [cp-patches] RFC: prevent URL degeneration - v3, Mark Wielaard, 2005/10/14
- Re: [cp-patches] RFC: prevent URL degeneration - v3, Mark Wielaard, 2005/10/14
Re: [cp-patches] RFC: prevent URL degeneration, Chris Burdess, 2005/10/10