On Mon, 2008-01-21 at 12:31 -0700, Tom Tromey wrote:
> >>>>> "Luciano" == Luciano Chavez <[EMAIL PROTECTED]> writes:
>
> Luciano> This patch corrects two issues found in URI.relativize()
> Luciano> method in libjava/classpath/java/net/URI.java. It applies
> Luciano> from gcc 4.1.2 through latest trunk:
>
> Thanks. I am checking in a slightly different patch, appended.
> There's no need to use 'new String(rawPath)', because Strings are
> immutable.
>
> I'm also checking it in to Classpath.
>
> Just FYI... it is easier for us if you write a ChangeLog entry and
> submit it with your patch.
>
> Tom
>
Thanks Tom! I will remember about Changelog as well.
> ChangeLog:
> 2008-01-21 Luciano Chavez <[EMAIL PROTECTED]>
>
> PR libgcj/34369:
> * java/net/URI.java (relativize): Check initial segment for
> trailing "/".
>
> Index: java/net/URI.java
> ===================================================================
> --- java/net/URI.java (revision 131699)
> +++ java/net/URI.java (working copy)
> @@ -1,5 +1,5 @@
> /* URI.java -- An URI class
> - Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
> + Copyright (C) 2002, 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
>
> This file is part of GNU Classpath.
>
> @@ -968,12 +968,18 @@
> return uri;
> if (rawAuthority != null &&
> !(rawAuthority.equals(uri.getRawAuthority())))
> return uri;
> - if (!(uri.getRawPath().startsWith(rawPath)))
> - return uri;
> + String basePath = rawPath;
> + if (!(uri.getRawPath().equals(rawPath)))
> + {
> + if (!(basePath.endsWith("/")))
> + basePath = basePath.concat("/");
> + if (!(uri.getRawPath().startsWith(basePath)))
> + return uri;
> + }
> try
> {
> return new URI(null, null,
> - uri.getRawPath().substring(rawPath.length()),
> + uri.getRawPath().substring(basePath.length()),
> uri.getRawQuery(), uri.getRawFragment());
> }
> catch (URISyntaxException e)
--
Luciano Chavez <[EMAIL PROTECTED]>
IBM