This is an automated email from the ASF dual-hosted git repository. skygo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push: new 6db5615 Fix resources with same name but different extension from being hidden inside multi-release JARs. new 0347bdc Merge pull request #2115 from neilcsmith-net/mrj-missing-resources 6db5615 is described below commit 6db56159a7b6260629307a71a462caf2b546ff46 Author: Neil C Smith <neilcsm...@apache.org> AuthorDate: Fri May 1 12:13:14 2020 +0100 Fix resources with same name but different extension from being hidden inside multi-release JARs. Change CachingFileManager and ModuleFileManager to use a Map key that includes file extension to control file overriding. --- .../netbeans/modules/java/source/parsing/CachingFileManager.java | 7 +++++-- .../netbeans/modules/java/source/parsing/ModuleFileManager.java | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/java/java.source.base/src/org/netbeans/modules/java/source/parsing/CachingFileManager.java b/java/java.source.base/src/org/netbeans/modules/java/source/parsing/CachingFileManager.java index 294be61..eb64f36 100644 --- a/java/java.source.base/src/org/netbeans/modules/java/source/parsing/CachingFileManager.java +++ b/java/java.source.base/src/org/netbeans/modules/java/source/parsing/CachingFileManager.java @@ -247,6 +247,8 @@ public class CachingFileManager implements JavaFileManager, PropertyChangeListen Archive archive = provider.getArchive( entry.getURL(), cacheFile ); if (archive != null) { final Iterable<JavaFileObject> entries; + // multi-release code here duplicated in ModuleFileManager + // fixes should be ported across, or ideally this logic abstracted if (supportsMultiRelease && archive.isMultiRelease()) { if (prefixes == null) { prefixes = multiReleaseRelocations(); @@ -267,11 +269,12 @@ public class CachingFileManager implements JavaFileManager, PropertyChangeListen } final String fqn = inferBinaryName(l, fo); final String pkg = FileObjects.getPackageAndName(fqn)[0]; + final String name = pkg + "/" + FileObjects.getName(fo, false); if (base) { seenPackages.add(pkg); - fqn2f.put(fqn, fo); + fqn2f.put(name, fo); } else if (seenPackages.contains(pkg)) { - fqn2f.put(fqn, fo); + fqn2f.put(name, fo); } } } diff --git a/java/java.source.base/src/org/netbeans/modules/java/source/parsing/ModuleFileManager.java b/java/java.source.base/src/org/netbeans/modules/java/source/parsing/ModuleFileManager.java index 914face..dea019c 100644 --- a/java/java.source.base/src/org/netbeans/modules/java/source/parsing/ModuleFileManager.java +++ b/java/java.source.base/src/org/netbeans/modules/java/source/parsing/ModuleFileManager.java @@ -100,6 +100,8 @@ final class ModuleFileManager implements JavaFileManager { final Archive archive = cap.getArchive(root, cacheFile); if (archive != null) { final Iterable<JavaFileObject> entries; + // multi-release code here duplicated in CachingFileManager + // fixes should be ported across, or ideally this logic abstracted if (supportsMultiRelease && archive.isMultiRelease()) { if (prefixes == null) { prefixes = multiReleaseRelocations(); @@ -120,11 +122,12 @@ final class ModuleFileManager implements JavaFileManager { } final String fqn = inferBinaryName(l, fo); final String pkg = FileObjects.getPackageAndName(fqn)[0]; + final String name = pkg + "/" + FileObjects.getName(fo, false); if (base) { seenPackages.add(pkg); - fqn2f.put(fqn, fo); + fqn2f.put(name, fo); } else if (seenPackages.contains(pkg)) { - fqn2f.put(fqn, fo); + fqn2f.put(name, fo); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists