Merge pull request #2392 from eclipse/jetty-9.4.x-issue-2387-uriutils-jarfile
Issue #2387 - fixing URIUtil.equalsIgnoreEncoding() with jar:file:// uris
This commit is contained in:
commit
9147e408c8
|
@ -1046,9 +1046,17 @@ public class URIUtil
|
||||||
if (uriB.getScheme()!=null)
|
if (uriB.getScheme()!=null)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (!uriA.getScheme().equals(uriB.getScheme()))
|
else if (!uriA.getScheme().equalsIgnoreCase(uriB.getScheme()))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if ("jar".equalsIgnoreCase(uriA.getScheme()))
|
||||||
|
{
|
||||||
|
// at this point we know that both uri's are "jar:"
|
||||||
|
URI uriAssp = URI.create(uriA.getSchemeSpecificPart());
|
||||||
|
URI uriBssp = URI.create(uriB.getSchemeSpecificPart());
|
||||||
|
return equalsIgnoreEncodings(uriAssp, uriBssp);
|
||||||
|
}
|
||||||
|
|
||||||
if (uriA.getAuthority()==null)
|
if (uriA.getAuthority()==null)
|
||||||
{
|
{
|
||||||
if (uriB.getAuthority()!=null)
|
if (uriB.getAuthority()!=null)
|
||||||
|
@ -1057,7 +1065,7 @@ public class URIUtil
|
||||||
else if (!uriA.getAuthority().equals(uriB.getAuthority()))
|
else if (!uriA.getAuthority().equals(uriB.getAuthority()))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return equalsIgnoreEncodings(uriA.getPath(),uriB.getPath());
|
return equalsIgnoreEncodings(uriA.getPath(), uriB.getPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -30,13 +30,12 @@ import java.nio.charset.StandardCharsets;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/**
|
||||||
/** Util meta Tests.
|
* URIUtil Tests.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("SpellCheckingInspection")
|
||||||
public class URIUtilTest
|
public class URIUtilTest
|
||||||
{
|
{
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
@Test
|
@Test
|
||||||
public void testEncodePath()
|
public void testEncodePath()
|
||||||
{
|
{
|
||||||
|
@ -66,7 +65,6 @@ public class URIUtilTest
|
||||||
assertEquals("test%3F%C3%B6%3F%C3%B6:%C3%9F", buf.toString());
|
assertEquals("test%3F%C3%B6%3F%C3%B6:%C3%9F", buf.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
@Test
|
@Test
|
||||||
public void testDecodePath()
|
public void testDecodePath()
|
||||||
{
|
{
|
||||||
|
@ -88,7 +86,6 @@ public class URIUtilTest
|
||||||
assertEquals(odd,URIUtil.decodePath("/%00/"));
|
assertEquals(odd,URIUtil.decodePath("/%00/"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
@Test
|
@Test
|
||||||
public void testAddEncodedPaths()
|
public void testAddEncodedPaths()
|
||||||
{
|
{
|
||||||
|
@ -177,7 +174,7 @@ public class URIUtilTest
|
||||||
assertEquals("aaa;JS?A=1+/bbb", URIUtil.addEncodedPaths("aaa/;JS?A=1","/bbb"),"aaa/bbb;JS?A=1");
|
assertEquals("aaa;JS?A=1+/bbb", URIUtil.addEncodedPaths("aaa/;JS?A=1","/bbb"),"aaa/bbb;JS?A=1");
|
||||||
|
|
||||||
}
|
}
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
@Test
|
@Test
|
||||||
public void testAddDecodedPaths()
|
public void testAddDecodedPaths()
|
||||||
{
|
{
|
||||||
|
@ -249,7 +246,6 @@ public class URIUtilTest
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
@Test
|
@Test
|
||||||
public void testCompactPath()
|
public void testCompactPath()
|
||||||
{
|
{
|
||||||
|
@ -263,7 +259,6 @@ public class URIUtilTest
|
||||||
assertEquals("/foo/bar?a=b//c", URIUtil.compactPath("/foo///bar?a=b//c"));
|
assertEquals("/foo/bar?a=b//c", URIUtil.compactPath("/foo///bar?a=b//c"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
@Test
|
@Test
|
||||||
public void testParentPath()
|
public void testParentPath()
|
||||||
{
|
{
|
||||||
|
@ -275,7 +270,7 @@ public class URIUtilTest
|
||||||
assertEquals("parent null",null, URIUtil.parentPath(null));
|
assertEquals("parent null",null, URIUtil.parentPath(null));
|
||||||
|
|
||||||
}
|
}
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
@Test
|
@Test
|
||||||
public void testEqualsIgnoreEncoding()
|
public void testEqualsIgnoreEncoding()
|
||||||
{
|
{
|
||||||
|
@ -297,7 +292,18 @@ public class URIUtilTest
|
||||||
assertFalse(URIUtil.equalsIgnoreEncodings("/foo2fbar","/foo/bar"));
|
assertFalse(URIUtil.equalsIgnoreEncodings("/foo2fbar","/foo/bar"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
@Test
|
||||||
|
public void testEqualsIgnoreEncoding_JarFile()
|
||||||
|
{
|
||||||
|
URI uriA = URI.create("jar:file:/path/to/main.jar!/META-INF/versions/");
|
||||||
|
URI uriB = URI.create("jar:file:/path/to/main.jar!/META-INF/%76ersions/");
|
||||||
|
assertTrue(URIUtil.equalsIgnoreEncodings(uriA, uriB));
|
||||||
|
|
||||||
|
uriA = URI.create("JAR:FILE:/path/to/main.jar!/META-INF/versions/");
|
||||||
|
uriB = URI.create("jar:file:/path/to/main.jar!/META-INF/versions/");
|
||||||
|
assertTrue(URIUtil.equalsIgnoreEncodings(uriA, uriB));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testJarSource() throws Exception
|
public void testJarSource() throws Exception
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue