From 213bcd1b2ace5c2124508e10084552f8fb572e74 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Wed, 26 Jul 2023 22:02:21 -0400 Subject: [PATCH] Fix getResource("") failing to return valid resource Fixes #187 --- .../classloading/ModernFixResourceFinder.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/classloading/ModernFixResourceFinder.java b/forge/src/main/java/org/embeddedt/modernfix/forge/classloading/ModernFixResourceFinder.java index 528cb4f7..b0dc2315 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/classloading/ModernFixResourceFinder.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/classloading/ModernFixResourceFinder.java @@ -92,7 +92,20 @@ public class ModernFixResourceFinder { } public static Enumeration findAllURLsForResource(String input) { - // CachedResourcePath normalizes already + // CachedResourcePath normalizes already but we need to strip trailing slash if any + // TODO move logic to FileUtil.normalize() + int lastIndex = input.length(); + boolean strip = false; + while(lastIndex > 1) { + char c = input.charAt(lastIndex - 1); + if (c == '/' || c == '\\') { + lastIndex--; + strip = true; + } else + break; + } + if(strip) + input = input.substring(0, lastIndex); Collection urlList = urlsForClass.get(new CachedResourcePath(input)); if(!urlList.isEmpty()) { String pathInput = FileUtil.normalize(input);