re PR libgcj/34369 (java.net.URI.relativize(URI) method returns incorrect results)

2008-01-21  Luciano Chavez  <lnx1138@us.ibm.com>

	PR libgcj/34369:
	* java/net/URI.java (relativize): Check initial segment for
	trailing "/".

From-SVN: r131701
This commit is contained in:
Luciano Chavez 2008-01-21 20:08:38 +00:00 committed by Tom Tromey
parent d68e117b15
commit e0c604077e
3 changed files with 16 additions and 4 deletions

View file

@ -1,3 +1,9 @@
2008-01-21 Luciano Chavez <lnx1138@us.ibm.com>
PR libgcj/34369:
* java/net/URI.java (relativize): Check initial segment for
trailing "/".
2007-12-05 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,

View file

@ -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 @@ public final class URI
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)