Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 359924 - Editing files while the workspace is building consistently hangs the UI in 3.7
Summary: Editing files while the workspace is building consistently hangs the UI in 3.7
Status: CLOSED WONTFIX
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.7.1   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard: stalebug
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-04 17:05 EDT by Adam Hawthorne CLA
Modified: 2019-11-01 12:33 EDT (History)
1 user (show)

See Also:


Attachments
Stack trace (185.26 KB, text/plain)
2011-10-04 17:07 EDT, Adam Hawthorne CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Hawthorne CLA 2011-10-04 17:05:13 EDT
I upgraded from 3.5 to 3.7.  It seems as though the UI locks up consistently after saving files, which was not as common and/or not as lengthy.   It's a severe usability issue when trying to iterate through a large number of files in a large project.

I did a few thread dumps to determine what could be hanging and it appears that (at least the current issue) might be related to populating the breadcrumb.  Is it possible to put that in a background thread?  That might avoid blocking the UI on building the current project.

Here's the pertinent part of the thread's stack; above this point is just  digging into the compilation routine.  I'm attaching the entire 5 thread dumps to this bug report, however.

	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.notifyParticipants(ReconcileWorkingCopyOperation.java:244)
	at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)
	at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)
	at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1205)
	at org.eclipse.jdt.internal.corext.util.JavaModelUtil.reconcile(JavaModelUtil.java:571)
	at org.eclipse.jdt.internal.ui.actions.SelectionConverter.getElementAtOffset(SelectionConverter.java:283)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorBreadcrumb.getCurrentInput(JavaEditorBreadcrumb.java:810)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorBreadcrumb.setInput(JavaEditorBreadcrumb.java:781)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.setBreadcrumbInput(JavaEditor.java:2007)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.selectionChanged(JavaEditor.java:2271)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$EditorSelectionChangedListener.selectionChanged(JavaEditor.java:300)
	at org.eclipse.jface.text.TextViewer.firePostSelectionChanged(TextViewer.java:2749)
	at org.eclipse.jface.text.TextViewer.firePostSelectionChanged(TextViewer.java:2697)
	at org.eclipse.jface.text.TextViewer$5.run(TextViewer.java:2676)
	at org.eclipse.swt.widgets.Display.timerProc(Display.java:4154)

-- Configuration Details --
Product: Eclipse SDK 3.7.1.v201109091335 (org.eclipse.sdk.ide)
Installed Features:
 org.eclipse.jdt 3.7.1.r371_v20110810-0800-7z8gFcoFMLfTabvKsR5Qm9rBGEBK
Comment 1 Adam Hawthorne CLA 2011-10-04 17:07:10 EDT
Created attachment 204553 [details]
Stack trace

This was taken while the UI was locked up using the following bash script:

for ((i=0; i < 5; ++i)); do jstack 28843 >> ~/eclipse_bug.txt; done

(where 28843 is my Eclipse process).

The thread that has the action is the 'main' thread.
Comment 2 Walter Harley CLA 2011-10-04 18:49:56 EDT
Seems like several threads are inside Google's compilation participant, all trying to collectTypes().
Comment 3 Eclipse Genie CLA 2019-11-01 12:33:27 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.