From a2f5e1254e3ccf190ec559492a33ca87c47e54d3 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Thu, 26 Oct 2017 15:28:27 +0200 Subject: [PATCH] Drive letter case alignment in addClassPathManifestEntries Issue: SPR-16117 --- .../core/io/support/PathMatchingResourcePatternResolver.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java b/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java index a485a5b10f..4d198678eb 100644 --- a/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java +++ b/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java @@ -424,6 +424,11 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol javaClassPathProperty, System.getProperty("path.separator"))) { try { String filePath = new File(path).getAbsolutePath(); + int prefixIndex = filePath.indexOf(':'); + if (prefixIndex == 1) { + // Possibly "c:" drive prefix on Windows, to be upper-cased for proper duplicate detection + filePath = filePath.substring(0, 1).toUpperCase() + filePath.substring(1); + } UrlResource jarResource = new UrlResource(ResourceUtils.JAR_URL_PREFIX + ResourceUtils.FILE_URL_PREFIX + filePath + ResourceUtils.JAR_URL_SEPARATOR); // Potentially overlapping with URLClassLoader.getURLs() result above!