Bug 15788

Summary: Walkbacks at startup
Product: [Eclipse Project] JDT Reporter: Jed Anderson <jed.anderson>
Component: CoreAssignee: Jerome Lanneluc <jerome_lanneluc>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: Darin_Swanson
Version: 2.0   
Target Milestone: 2.0 M6   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description Jed Anderson CLA 2002-05-10 16:33:58 EDT
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)
Comment 1 Olivier Thomann CLA 2002-05-13 14:05:21 EDT
Would you have a reproducable test case? It looks really weird, that this exception could occur.
Comment 2 Jed Anderson CLA 2002-05-13 14:16:39 EDT
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.
Comment 3 Olivier Thomann CLA 2002-05-13 17:19:29 EDT
*** Bug 15865 has been marked as a duplicate of this bug. ***
Comment 4 Jerome Lanneluc CLA 2002-05-15 09:12:31 EDT
Now caching the zip file on a per thread basis. This will prevent 2 threads to 
use the same ZipFile instance.