>>>>> "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
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)