eclipse-jdt / eclipse.jdt.core

Eclipse Public License 2.0
162 stars 131 forks source link

Bad zip entry when double dot in name #2278

Closed strawik closed 6 months ago

strawik commented 6 months ago

Cannot do any java search when there is jar file on classpath with file containing two following dots (E.T..png).

Eclipse IDE for Enterprise Java and Web Developers (includes Incubating components) Version: 2024-03 (4.31.0) Build id: 20240307-1437

!ENTRY org.eclipse.core.jobs 4 2 2024-04-04 07:50:16.684 !MESSAGE An internal error occurred during: "Java Search". !STACK 0 java.lang.IllegalArgumentException: Bad zip entry: image/symbol/et/E.T..png in /home/strawik/.m2/repository/a/b/c/d-SNAPSHOT/d-SNAPSHOT.jar at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.computeChildren(JarPackageFragmentRoot.java:155) at org.eclipse.jdt.internal.core.JavaProjectElementInfo.initializePackageNames(JavaProjectElementInfo.java:276) at org.eclipse.jdt.internal.core.JavaProjectElementInfo.getProjectCache(JavaProjectElementInfo.java:244) at org.eclipse.jdt.internal.core.JavaProjectElementInfo.newNameLookup(JavaProjectElementInfo.java:314) at org.eclipse.jdt.internal.core.JavaProject.newNameLookup(JavaProject.java:2808) at org.eclipse.jdt.internal.core.SearchableEnvironment.(SearchableEnvironment.java:106) at org.eclipse.jdt.internal.core.JavaProject.newSearchableNameEnvironment(JavaProject.java:2830) at org.eclipse.jdt.internal.core.JavaProject.newSearchableNameEnvironment(JavaProject.java:2824) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.initialize(MatchLocator.java:1246) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1293) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1406) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1526) at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:134) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:253) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:599) at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:669) at org.eclipse.jdt.internal.ui.search.JavaSearchQuery.run(JavaSearchQuery.java:178) at org.eclipse.search2.internal.ui.InternalSearchUI$InternalSearchJob.run(InternalSearchUI.java:94) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

uqpik commented 6 months ago

I have the same error when opening the Java Build Path project's property page including external jars:

java.lang.IllegalArgumentException: Bad zip entry: overrides/..ROOT...override in D:\Programs\eclipse-2024-03\eclipse\plugins\org.eclipse.jem_2.1.0.v202307260438.jar at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.computeChildren(JarPackageFragmentRoot.java:155) at org.eclipse.jdt.internal.core.JavaProjectElementInfo.initializePackageNames(JavaProjectElementInfo.java:276) at org.eclipse.jdt.internal.core.JavaProjectElementInfo.getProjectCache(JavaProjectElementInfo.java:244) at org.eclipse.jdt.internal.core.JavaProjectElementInfo.newNameLookup(JavaProjectElementInfo.java:314) at org.eclipse.jdt.internal.core.JavaProject.newNameLookup(JavaProject.java:2808) at org.eclipse.jdt.internal.core.SearchableEnvironment.(SearchableEnvironment.java:106) at org.eclipse.jdt.internal.core.SearchableEnvironment.(SearchableEnvironment.java:147) at org.eclipse.jdt.internal.core.CancelableNameEnvironment.(CancelableNameEnvironment.java:32) at org.eclipse.jdt.internal.core.CancelableNameEnvironment.(CancelableNameEnvironment.java:29) at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:773) at org.eclipse.jdt.core.dom.ASTParser.internalCreateASTCached(ASTParser.java:1242) at org.eclipse.jdt.core.dom.ASTParser.lambda$0(ASTParser.java:1120) at org.eclipse.jdt.internal.core.JavaModelManager.cacheZipFiles(JavaModelManager.java:5839) at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1120) at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:868) at org.eclipse.jdt.core.manipulation.CoreASTProvider$1.run(CoreASTProvider.java:294) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47) at org.eclipse.jdt.core.manipulation.CoreASTProvider.createAST(CoreASTProvider.java:286) at org.eclipse.jdt.core.manipulation.CoreASTProvider.getAST(CoreASTProvider.java:199) at org.eclipse.jdt.core.manipulation.SharedASTProviderCore.getAST(SharedASTProviderCore.java:138) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java:167) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup$1.lambda$0(SelectionListenerWithASTManager.java:149) at org.eclipse.jdt.internal.core.JavaModelManager.cacheZipFiles(JavaModelManager.java:5839) at org.eclipse.jdt.internal.core.JavaModelManager.callReadOnly(JavaModelManager.java:5828) at org.eclipse.jdt.core.JavaCore.callReadOnly(JavaCore.java:6126) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup$1.run(SelectionListenerWithASTManager.java:149) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

uqpik commented 6 months ago

Fixed with the latest JarPackageFragmentRoot.java.

iloveeclipse commented 6 months ago

Fixed with the latest JarPackageFragmentRoot.java.

Most likely with fc75d8237441ae0011508f6e08e45e8123d441b3.