protected IBinaryType createInfoFromClassFileInJar(Openable classFile) { String filePath = (((ClassFile) classFile).getType().getFullyQualifiedName('$')).replace('.', '/') + SuffixConstants.SUFFIX_STRING_class; IPackageFragmentRoot root = classFile.getPackageFragmentRoot(); IPath path = root.getPath(); // take the OS path for external jars, and the forward slash path for internal jars String rootPath = path.getDevice() == null ? path.toString() : path.toOSString(); String documentPath = rootPath + IJavaSearchScope.JAR_FILE_ENTRY_SEPARATOR + filePath; IBinaryType binaryType = (IBinaryType) this.binariesFromIndexMatches.get(documentPath); if (binaryType != null) { this.infoToHandle.put(binaryType, classFile); return binaryType; } else { return super.createInfoFromClassFileInJar(classFile); } }