svoid bcelFixDuplicateInnerClassesECJBug(File jar, S classFileInJar) { import org.apache.bcel.classfile.InnerClasses; import org.apache.bcel.classfile.InnerClass; //extractProjectForLocalCompilation(#1033411, userDir("dev/1033411")) File file = jar; S path = classFileInJar; JavaClass c = bcel_classInZip(file, path); //dm_showText(pnlToString(sortedAlphaNumIC(map(c.getAttributes(), a -> a.getNameIndex() + ": " + a))); var ic = firstThat(c.getAttributes(), a -> eq(a.getName(), "InnerClasses")); print(ic := className(ic)); cast ic to InnerClasses; InnerClass[] icList = ic.getInnerClasses(); //dm_showText(lines(icList)); var dup = duplicates(allToString(icList)); printMultiSet(dup); if (nempty(dup)) { print("DUPLICATES!!"); Cl filtered = values(mapToKeys toString(icList)); ic.setInnerClasses(toArrayOfType InnerClass(filtered)); printFileInfo(bcelSave(c, newFileInSameDir(file, path))); } }