diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java index d492cb936c08..d17ca3c445d2 100644 --- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java +++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java @@ -704,13 +704,12 @@ public boolean isFromExcludedJar(WebAppContext context, ServletContainerInitiali } //Check if it is excluded by an ordering - URI loadingJarURI = sciResource.getURI(); boolean found = false; Iterator itor = orderedJars.iterator(); while (!found && itor.hasNext()) { Resource r = itor.next(); - found = r.getURI().equals(loadingJarURI); + found = r.equals(sciResource); } if (LOG.isDebugEnabled()) diff --git a/jetty-util/src/test/java/org/eclipse/jetty/util/resource/ResourceTest.java b/jetty-util/src/test/java/org/eclipse/jetty/util/resource/ResourceTest.java index b5d496bb01f8..aafdafbe1d93 100644 --- a/jetty-util/src/test/java/org/eclipse/jetty/util/resource/ResourceTest.java +++ b/jetty-util/src/test/java/org/eclipse/jetty/util/resource/ResourceTest.java @@ -34,6 +34,7 @@ import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.EnabledOnOs; import org.junit.jupiter.api.condition.OS; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -42,6 +43,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.startsWith; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; public class ResourceTest @@ -297,4 +299,30 @@ public void testGlobPath() throws IOException Resource globResource = Resource.newResource(globReference); assertNotNull(globResource, "Should have produced a Resource"); } + + @Test + @EnabledOnOs(OS.WINDOWS) + public void testEqualsWindowsAltUriSyntax() throws Exception + { + URI a = new URI("file:/C:/foo/bar"); + URI b = new URI("file:///C:/foo/bar"); + + Resource ra = Resource.newResource(a); + Resource rb = Resource.newResource(b); + + assertEquals(rb, ra); + } + + @Test + @EnabledOnOs(OS.WINDOWS) + public void testEqualsWindowsCaseInsensitiveDrive() throws Exception + { + URI a = new URI("file:///c:/foo/bar"); + URI b = new URI("file:///C:/foo/bar"); + + Resource ra = Resource.newResource(a); + Resource rb = Resource.newResource(b); + + assertEquals(rb, ra); + } }