Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 348931 - locked up UI thread due to getAST deadlock
Summary: locked up UI thread due to getAST deadlock
Status: CLOSED DUPLICATE of bug 322914
Alias: None
Product: JDT
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.6.2   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: JDT-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-09 12:56 EDT by Eddie Galvez CLA
Modified: 2011-06-09 13:40 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eddie Galvez CLA 2011-06-09 12:56:54 EDT
Build Identifier: 3.6.2

I have my eclipse stuck right now, as the main/UI thread can't make progress:

Here's my worker thread:

Name: Worker-42
State: WAITING on java.lang.Object@39232119
Total blocked: 1,457  Total waited: 2,178

Stack trace: 
 java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:456)
org.eclipse.jdt.ui.SharedASTProvider.getAST(SharedASTProvider.java:126)
org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java:169)
org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$3.run(SelectionListenerWithASTManager.java:154)
   - locked java.lang.Object@54a188e7
org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Another worker thread involved:

Name: Worker-45
State: BLOCKED on java.lang.Object@54a188e7 owned by: Worker-42
Total blocked: 964  Total waited: 1,358

Stack trace: 
 org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$3.run(SelectionListenerWithASTManager.java:154)
org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Here's my UI thread:

Name: main
State: WAITING on java.lang.Object@39232119
Total blocked: 6,274  Total waited: 163

Stack trace: 
 java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:456)
org.eclipse.jdt.ui.SharedASTProvider.getAST(SharedASTProvider.java:126)
org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.getOverrideIndicators(OverrideIndicatorLabelDecorator.java:161)
org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.computeAdornmentFlags(OverrideIndicatorLabelDecorator.java:136)
org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.decorateImage(OverrideIndicatorLabelDecorator.java:110)
org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.decorateImage(JavaUILabelProvider.java:134)
org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.getImage(JavaUILabelProvider.java:149)
org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.getImage(DelegatingStyledCellLabelProvider.java:184)
org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.getImage(DecoratingStyledCellLabelProvider.java:167)
org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.update(DelegatingStyledCellLabelProvider.java:118)
org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.update(DecoratingStyledCellLabelProvider.java:134)
org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:152)
org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:934)
org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:102)
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1014)
org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:481)
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2141)
org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:829)
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:804)
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:778)
org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644)
org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel(AbstractTreeViewer.java:1714)
org.eclipse.jdt.internal.ui.text.JavaOutlineInformationControl$OutlineTreeViewer.internalExpandToLevel(JavaOutlineInformationControl.java:225)
org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel(AbstractTreeViewer.java:1724)
org.eclipse.jdt.internal.ui.text.JavaOutlineInformationControl$OutlineTreeViewer.internalExpandToLevel(JavaOutlineInformationControl.java:225)
org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1493)
org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:833)
org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1476)
org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1422)
org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403)
org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1383)
org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1469)
org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:274)
org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1664)
org.eclipse.jdt.internal.ui.text.AbstractInformationControl.inputChanged(AbstractInformationControl.java:577)
org.eclipse.jdt.internal.ui.text.JavaOutlineInformationControl.setInput(JavaOutlineInformationControl.java:622)
org.eclipse.jface.text.AbstractInformationControlManager.internalShowInformationControl(AbstractInformationControlManager.java:1170)
org.eclipse.jface.text.AbstractInformationControlManager.presentInformation(AbstractInformationControlManager.java:1139)
org.eclipse.jface.text.AbstractInformationControlManager.setInformation(AbstractInformationControlManager.java:418)
org.eclipse.jface.text.information.InformationPresenter.computeInformation(InformationPresenter.java:353)
org.eclipse.jface.text.AbstractInformationControlManager.doShowInformation(AbstractInformationControlManager.java:1120)
org.eclipse.jface.text.AbstractInformationControlManager.showInformation(AbstractInformationControlManager.java:1110)
org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:174)
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:199)
org.eclipse.ui.texteditor.TextOperationAction$1.run(TextOperationAction.java:131)
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
org.eclipse.ui.texteditor.TextOperationAction.run(TextOperationAction.java:129)
org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468)
org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786)
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885)
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567)
org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508)
org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
org.eclipse.swt.widgets.Display.filterEvent(Display.java:1253)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1103)
org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1099)
org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1508)
org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4270)
org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345)
org.eclipse.swt.widgets.Control.windowProc(Control.java:4162)
org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459)
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655)
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
org.eclipse.equinox.launcher.Main.run(Main.java:1408)
org.eclipse.equinox.launcher.Main.main(Main.java:1384)


Reproducible: Didn't try

Steps to Reproduce:
I work getting work done, on a class I've been working on for a while.
I hit CTRL-O and started typing, but the outline never came
Comment 1 Markus Keller CLA 2011-06-09 13:40:01 EDT

*** This bug has been marked as a duplicate of bug 322914 ***