Community
Participate
Working Groups
Build: 20020508 I got the following printed to the console at startup: (note: I didn't see these error messages in the log, which scares me) java.lang.IllegalStateException: zip file closed at java.util.zip.ZipFile.getEntry(ZipFile.java:143) at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.read(ClassFileReader.java:541) at org.eclipse.jdt.internal.core.ClassFile.getBinaryTypeInfo(ClassFile.java:163) at org.eclipse.jdt.internal.core.ClassFile.generateInfos(ClassFile.java:121) at org.eclipse.jdt.internal.core.Openable.buildStructure(Openable.java:66) at org.eclipse.jdt.internal.core.Openable.openWhenClosed(Openable.java:386) at org.eclipse.jdt.internal.core.BinaryMember.openHierarchy(BinaryMember.java:78) at org.eclipse.jdt.internal.core.JavaElement.getRawInfo(JavaElement.java:386) at org.eclipse.jdt.internal.core.BinaryType.isInterface(BinaryType.java:398) at org.eclipse.jdt.internal.core.BinaryType.isClass(BinaryType.java:392) at org.eclipse.jdt.internal.core.NameLookup.acceptType(NameLookup.java:104) at org.eclipse.jdt.internal.core.NameLookup.seekTypesInBinaryPackage(NameLookup.java:603) at org.eclipse.jdt.internal.core.NameLookup.seekTypes(NameLookup.java:549) at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:431) at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:359) at org.eclipse.jdt.internal.core.SearchableEnvironment.find(SearchableEnvironment.java:49) at org.eclipse.jdt.internal.core.SearchableEnvironment.findType(SearchableEnvironment.java:128) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:85) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getType(LookupEnvironment.java:421) at org.eclipse.jdt.internal.compiler.lookup.Scope.getJavaLangObject(Scope.java:793) at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperclass(ClassScope.java:560) at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy(ClassScope.java:662) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(CompilationUnitScope.java:170) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:161) at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:303) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:553) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.resolve(CompilationUnitProblemFinder.java:163) at org.eclipse.jdt.internal.core.WorkingCopy.reconcile(WorkingCopy.java:374) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:72) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:121) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:95) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:134) java.lang.IllegalStateException: zip file closed at java.util.zip.ZipFile.getEntry(ZipFile.java:143) at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.read(ClassFileReader.java:541) at org.eclipse.jdt.internal.core.ClassFile.getBinaryTypeInfo(ClassFile.java:163) at org.eclipse.jdt.internal.core.ClassFile.generateInfos(ClassFile.java:121) at org.eclipse.jdt.internal.core.Openable.buildStructure(Openable.java:66) at org.eclipse.jdt.internal.core.Openable.openWhenClosed(Openable.java:386) at org.eclipse.jdt.internal.core.BinaryMember.openHierarchy(BinaryMember.java:78) at org.eclipse.jdt.internal.core.JavaElement.getRawInfo(JavaElement.java:386) at org.eclipse.jdt.internal.core.BinaryType.isInterface(BinaryType.java:398) at org.eclipse.jdt.internal.core.BinaryType.isClass(BinaryType.java:392) at org.eclipse.jdt.internal.core.NameLookup.acceptType(NameLookup.java:104) at org.eclipse.jdt.internal.core.NameLookup.seekTypesInBinaryPackage(NameLookup.java:603) at org.eclipse.jdt.internal.core.NameLookup.seekTypes(NameLookup.java:549) at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:431) at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:359) at org.eclipse.jdt.internal.core.SearchableEnvironment.find(SearchableEnvironment.java:49) at org.eclipse.jdt.internal.core.SearchableEnvironment.findType(SearchableEnvironment.java:128) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:85) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getType(LookupEnvironment.java:421) at org.eclipse.jdt.internal.compiler.lookup.Scope.getJavaLangObject(Scope.java:793) at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperclass(ClassScope.java:560) at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy(ClassScope.java:662) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(CompilationUnitScope.java:170) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:161) at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:303) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:553) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.resolve(CompilationUnitProblemFinder.java:163) at org.eclipse.jdt.internal.core.WorkingCopy.reconcile(WorkingCopy.java:374) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:72) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:121) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:95) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:134)
Would you have a reproducable test case? It looks really weird, that this exception could occur.
Sorry, I have no test case. I imagine it is a rare timing issue since I have been running a large number of workspaces against this code and have only seen the walkback once.
*** Bug 15865 has been marked as a duplicate of this bug. ***
Now caching the zip file on a per thread basis. This will prevent 2 threads to use the same ZipFile instance.