-
Bug
-
Resolution: Done
-
Major
-
2.4.0.Final, 3.0.0.Alpha17
-
None
For a variety of reasons, I have a nested bean archive available in my jar file under FOOBAR/classes. This means there is a FOOBAR/classes/META-INF/beans.xml file in there.
Weld SE properly finds the beans.xml there, but when the FileSystemBeanArchiveHandler class goes to do things with it, it is skipped due to a trailing slash equality comparison issue.
In FileSystemBeanArchiveHandler.java, line 125 and following, it reads:
try (ZipFile zip = new ZipFile(file)) { Enumeration<? extends ZipEntry> entries = zip.entries(); while (entries.hasMoreElements()) { ZipEntry zipEntry = entries.nextElement(); if (zipEntry.getName().equals(nestedEntryName)) { // XXXX <--- this is the problem
At line 133 (marked with // XXXX above), the zipEntry's name will (in my case) end with a trailing slash, whereas the nestedEntryName will not end with a trailing slash. This means that only nested jar files, not nested archive directory roots, can be detected.