Community
Participate
Working Groups
Build I20040506 According to bug 62232, the following stack trace got observed in .log file. No steps to reproduce. !MESSAGE Exception in Decorator !ENTRY org.eclipse.ui 4 4 May 18, 2004 10:00:06.146 !MESSAGE 1 !STACK 0 java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.jdt.internal.core.SearchableEnvironment.find (SearchableEnvironment.java:109) at org.eclipse.jdt.internal.core.SearchableEnvironment.findType (SearchableEnvironment.java:157) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType (LookupEnvironment.java:95) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage (PackageBinding.java:170) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findOnDemandImpor t(CompilationUnitScope.java:361) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleTypeImp ort(CompilationUnitScope.java:419) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.resolveSingleType Import(CompilationUnitScope.java:547) at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage (Scope.java:1436) at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype (ClassScope.java:815) at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperInterfaces (ClassScope.java:652) at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy (ClassScope.java:701) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar chy(CompilationUnitScope.java:242) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings (LookupEnvironment.java:225) at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.accept (HierarchyResolver.java:202) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType (LookupEnvironment.java:107) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage (PackageBinding.java:170) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findOnDemandImpor t(CompilationUnitScope.java:361) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleTypeImp ort(CompilationUnitScope.java:419) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports (CompilationUnitScope.java:297) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes (CompilationUnitScope.java:347) at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve (HierarchyResolver.java:710) at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve (HierarchyResolver.java:522) at org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder.buildSupertypes (HierarchyBuilder.java:113) at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.build (IndexBasedHierarchyBuilder.java:135) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.compute (TypeHierarchy.java:319) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh (TypeHierarchy.java:1234) at org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation.executeOperation (CreateTypeHierarchyOperation.java:90) at org.eclipse.jdt.internal.core.JavaModelOperation.run (JavaModelOperation.java:700) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation (JavaModelOperation.java:739) at org.eclipse.jdt.internal.core.SourceType.newSupertypeHierarchy (SourceType.java:604) at org.eclipse.jdt.internal.core.SourceType.newSupertypeHierarchy (SourceType.java:556) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getTypeHierarchy (SuperTypeHierarchyCache.java:95) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getTypeHierarchy (SuperTypeHierarchyCache.java:81) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.getOverrideIndicators (OverrideIndicatorLabelDecorator.java:142) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.computeAdornmentFlags (OverrideIndicatorLabelDecorator.java:117) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.decorate (OverrideIndicatorLabelDecorator.java:203) at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate (LightweightDecoratorDefinition.java:155) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunna ble.run(LightweightDecoratorManager.java:60) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:607) at org.eclipse.core.runtime.Platform.run(Platform.java:668) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate (LightweightDecoratorManager.java:258) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations (LightweightDecoratorManager.java:241) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run (DecorationScheduler.java:283) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
From this stack trace, I cannot construct a test case that shows this ArrayIndexOutOfBoundsException. Ian would you have the source of the classes in this hierarchy ?
M9 + HEAD of Text plugins Happend when I tried to open 10 copies of org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/TextLayout.java with "close editors automatically" enabled and "n. of opened editors" set to 1 (see Workbench->Editors preference page). (This happend by accident...) java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.jdt.internal.core.SearchableEnvironment.find(SearchableEnvironment.java:109) at org.eclipse.jdt.internal.core.SearchableEnvironment.findType(SearchableEnvironment.java:157) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:95) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:170) at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:1448) at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:1271) at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:43) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor(SourceTypeBinding.java:829) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getMethods(SourceTypeBinding.java:535) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getExactMethod(SourceTypeBinding.java:462) at org.eclipse.jdt.internal.compiler.lookup.Scope.findExactMethod(Scope.java:233) at org.eclipse.jdt.internal.compiler.lookup.Scope.getMethod(Scope.java:1232) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:238) at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:445) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.WhileStatement.resolve(WhileStatement.java:213) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.WhileStatement.resolve(WhileStatement.java:213) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.IfStatement.resolve(IfStatement.java:226) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.ForStatement.resolve(ForStatement.java:300) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:381) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:137) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:358) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:922) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:971) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:273) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:562) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:601) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:166) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:206) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:76) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:739) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1097) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:88) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:156) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:122) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:104) at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:280) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:166) !ENTRY org.eclipse.core.runtime 4 2 May 25, 2004 18:51:42.410 !MESSAGE An internal error occurred during: "Java AST creation". !STACK 0 java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.jdt.internal.core.SearchableEnvironment.find(SearchableEnvironment.java:109) at org.eclipse.jdt.internal.core.SearchableEnvironment.findType(SearchableEnvironment.java:157) at org.eclipse.jdt.core.dom.CompilationUnitResolver$CancelableNameEnvironment.findType(CompilationUnitResolver.java:70) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:95) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:170) at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:1448) at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:1271) at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:43) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor(SourceTypeBinding.java:829) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getMethods(SourceTypeBinding.java:535) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getExactMethod(SourceTypeBinding.java:462) at org.eclipse.jdt.internal.compiler.lookup.Scope.findExactMethod(Scope.java:233) at org.eclipse.jdt.internal.compiler.lookup.Scope.getMethod(Scope.java:1232) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:238) at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:445) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.WhileStatement.resolve(WhileStatement.java:213) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.WhileStatement.resolve(WhileStatement.java:213) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.IfStatement.resolve(IfStatement.java:226) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.ForStatement.resolve(ForStatement.java:300) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:381) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:137) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:358) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:922) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:971) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:273) at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:436) at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:313) at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:653) at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:573) at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.createAST(ASTProvider.java:437) at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:389) at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:383) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java:125) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$1.run(SelectionListenerWithASTManager.java:102) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
M9 I'm also observed this exception in the log. The stack trace matches the one from the initial bug description.
This sounds like a concurrency problem: a working copy is closed while it is used by the SearchableEnvironment. Added protection in SearchableEnvironment#find(...) to ensure that the index is inside bounds. However I've never been able to reproduce this problem.
Could not reproduce anymore. Verified in 200405281200
*** Bug 64445 has been marked as a duplicate of this bug. ***