Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 197942

Summary: [performance] refresh workspace with active task hogs CPU
Product: z_Archived Reporter: Jörg von Frantzius <jfrantzius>
Component: MylynAssignee: Project Inbox <mylyn-triaged>
Status: CLOSED MOVED QA Contact:
Severity: major    
Priority: P2 CC: aleixce, eclipsebugs, jens.elmenthaler, jtk499, ribs, robert.elves, sam.davis, steffen.pingel
Version: unspecifiedKeywords: plan
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Bug Depends on:    
Bug Blocks: 356109    
Attachments:
Description Flags
thread dump with PDT and Mylyn none

Description Jörg von Frantzius CLA 2007-07-26 06:44:18 EDT
Build ID: 3.3 GA

Steps To Reproduce:
1. Have a big workspace with lots of files
2. Activate a task
3. Refresh workspace, with lots of changes made outside
4. see Eclipse crawl and hear your CPU scream

More information:
Repeated thread dumps show execution coming through
rg.eclipse.mylyn.internal.java.ui.LandmarkMarkerManager.landmarkAdde
d(LandmarkMarkerManager.java:102)

like this one:


"main" prio=6 tid=0x00036f00 nid=0x964 runnable [0x0007c000..0x0007fc40]
        at java.lang.StringBuffer.toString(StringBuffer.java:586)
        - waiting to lock <0x13a4a470> (a java.lang.StringBuffer)
        at org.eclipse.osgi.util.NLS.internalBind(NLS.java:213)
        at org.eclipse.osgi.util.NLS.bind(NLS.java:85)
        at org.eclipse.ui.internal.HeapStatus.convertToMegString(HeapStatus.java
:492)
        at org.eclipse.ui.internal.HeapStatus.updateToolTip(HeapStatus.java:478)

        at org.eclipse.ui.internal.HeapStatus.access$2(HeapStatus.java:477)
        at org.eclipse.ui.internal.HeapStatus$1.run(HeapStatus.java:74)
        at org.eclipse.swt.widgets.Display.runTimer(Display.java:3745)
        at org.eclipse.swt.widgets.Display.messageProc(Display.java:2967)
        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2264)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3291)
        at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.runEventLoop
(EventLoopProgressMonitor.java:123)
        at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.isCanceled(E
ventLoopProgressMonitor.java:97)
        at org.eclipse.core.internal.jobs.ThreadJob.isCanceled(ThreadJob.java:13
2)
        at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:167)
        at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:8
7)
        at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:2
25)
        at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.j
ava:117)
        at org.eclipse.core.internal.resources.Workspace.prepareOperation(Worksp
ace.java:1744)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1792
)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1779
)
        at org.eclipse.mylyn.internal.java.ui.LandmarkMarkerManager.landmarkAdde
d(LandmarkMarkerManager.java:102)
        at org.eclipse.mylyn.internal.context.core.InteractionContextManager.che
ckForLandmarkDeltaAndNotify(InteractionContextManager.java:355)
        at org.eclipse.mylyn.internal.context.core.InteractionContextManager.pro
pegateInterestToParents(InteractionContextManager.java:369)
        at org.eclipse.mylyn.internal.context.core.InteractionContextManager.pro
pegateInterestToParents(InteractionContextManager.java:413)
        at org.eclipse.mylyn.internal.context.core.InteractionContextManager.int
ernalProcessInteractionEvent(InteractionContextManager.java:285)
        at org.eclipse.mylyn.internal.context.core.InteractionContextManager.pro
cessInteractionEvent(InteractionContextManager.java:242)
        at org.eclipse.mylyn.internal.context.core.InteractionContextManager.pro
cessInteractionEvent(InteractionContextManager.java:220)
        at org.eclipse.mylyn.internal.context.core.InteractionContextManager.pro
cessInteractionEvent(InteractionContextManager.java:216)
        at org.eclipse.mylyn.monitor.ui.AbstractUserInteractionMonitor.handleEle
mentSelection(AbstractUserInteractionMonitor.java:79)
        at org.eclipse.mylyn.internal.java.ui.JavaEditingMonitor.handleWorkbench
PartSelection(JavaEditingMonitor.java:70)
        at org.eclipse.mylyn.monitor.ui.AbstractUserInteractionMonitor.selection
Changed(AbstractUserInteractionMonitor.java:55)
        at org.eclipse.ui.internal.AbstractSelectionService.firePostSelection(Ab
stractSelectionService.java:179)
        at org.eclipse.ui.internal.AbstractSelectionService.setActivePart(Abstra
ctSelectionService.java:289)
        at org.eclipse.ui.internal.WWinPartService.updateActivePart(WWinPartServ
ice.java:125)
        at org.eclipse.ui.internal.WWinPartService.access$0(WWinPartService.java
:115)
        at org.eclipse.ui.internal.WWinPartService$1.partDeactivated(WWinPartSer
vice.java:48)
        at org.eclipse.ui.internal.PartListenerList2$4.run(PartListenerList2.jav
a:113)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at org.eclipse.core.runtime.Platform.run(Platform.java:857)
        at org.eclipse.ui.internal.PartListenerList2.fireEvent(PartListenerList2
.java:53)
        at org.eclipse.ui.internal.PartListenerList2.firePartDeactivated(PartLis
tenerList2.java:111)
        at org.eclipse.ui.internal.PartService.firePartDeactivated(PartService.j
ava:116)
        at org.eclipse.ui.internal.PartService.setActivePart(PartService.java:16
5)
        at org.eclipse.ui.internal.WorkbenchPagePartList.fireActivePartChanged(W
orkbenchPagePartList.java:56)
        at org.eclipse.ui.internal.PartList.setActivePart(PartList.java:126)
        at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.jav
a:3384)
        at org.eclipse.ui.internal.WorkbenchPage.requestActivation(WorkbenchPage
.java:2928)
        at org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:265)

        at org.eclipse.ui.internal.PartPane.handleEvent(PartPane.java:229)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:943)
        at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1273)
        at org.eclipse.swt.widgets.Shell.WM_MOUSEACTIVATE(Shell.java:2015)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3713)
        at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:291)
        at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1584)

        at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:1753)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4364)
        at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2259)
        at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)

        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3760)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4364)
        at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2259)
        at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)

        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3760)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4364)
        at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2259)
        at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)

        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3760)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4364)
        at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2259)
        at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)

        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3760)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4364)
        at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2259)
        at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)

        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3760)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4364)
        at org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:2768)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3288)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
        at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.ja
va:289)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.jav
a:461)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEAppli
cation.java:106)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandl
e.java:153)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppli
cation(EclipseAppLauncher.java:106)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ec
lipseAppLauncher.java:76)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja
va:363)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja
va:176)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1144)

"VM Thread" prio=10 tid=0x00317ad8 nid=0xedc runnable

"VM Periodic Task Thread" prio=10 tid=0x00323f28 nid=0x293c waiting on condition
Comment 1 Mik Kersten CLA 2007-07-26 22:43:03 EDT
This is very closely related to bug 120499.  Currently Mylyn makes all newly created resources interesting, and if there are a lot of new ones this can be a problem.  For resource exclusions see: http://wiki.eclipse.org/index.php/Mylyn_User_Guide#External_builders  Other than that the current work-around is to deactivate the task if the newly created resources are not intended to become interesting.
Comment 2 Mik Kersten CLA 2008-06-12 16:09:03 EDT
We have made some performance improvements in this area.  Further work will have to wait until 3.1.  If you see any more slowness of this sort with Mylyn 3.0 please post a stack trace.
Comment 3 Jörg Thönnes CLA 2008-11-28 16:38:45 EST
As I refreshed my workspace and some hundred generated files were updated and included into the task
context, this was really slow. But then I switch to the "Context" pane and used the new "Remove invisible..."
feature. This was even slower and somehow Eclipse got stuck in a loop, doing the same stuff without coming
to an end. On the stack trace, I could also see some stuff from the Groovy builder. Finally, I had to kill
Eclipse.
Comment 4 Larry Edelstein CLA 2009-04-06 18:51:18 EDT
I and some team members find ourselves frustrated by the automatic including of new or changed resources in the current task context upon refresh.  Invariably we are not interested in these files, and wind up manually removing many items from the context.  And it is SLOW.

We could manually deactivate the current task before we refresh, but I'd rather not have to remember that.

What would it take to disable this feature or make it a preference?  Is there code that detects external changes to files, or does the code not have an easy way to distinguish between these changes and those performed from Eclipse?
Comment 5 Robert Elves CLA 2009-04-13 21:25:32 EDT
As Mik mentioned, context exclusion is currently the only solution available to us since the context model gets all resource changes in the workspace's project folders.  This is a problem for codegen so we'll need to put some cycles towards it.  Shawn, sending to you since I know you've alread been looking into context removal improvements.
Comment 6 Shawn Minto CLA 2009-06-08 13:27:04 EDT
We have run out of time to get this into 3.2, but lets consider this in the planning of the next release as this is a problem with codegen tools.
Comment 7 Jörg Thönnes CLA 2009-08-14 05:00:49 EDT
+1

We have also slow-downs due to codegen tools. In addition, the resource exclusion mechanism is quite simplistic: Matches only on directory or file names. No paths possible.
Comment 8 Larry Edelstein CLA 2009-12-15 17:50:24 EST
I'm still looking to prevent the addition, into the active task context, upon a refresh, of resources changed outside of Eclipse.  It's not clear to me what the benefit is of resource change monitoring.  What if I turn it off?  I don't see a way to do that through the UI, but it looks like I ought to be able to call ResourcesUiBridgePlugin.setResourceMonitoringEnabled(false).  

If I did that, what would I be losing?  Items would still be added to the context when the user visits them or creates them via the UI, right?  I'm unclear on the benefits of resource monitoring, and probably need some cold water thrown on me.
Comment 9 Larry Edelstein CLA 2009-12-15 19:11:52 EST
I think I have my answer...with resource monitoring off, visiting files doesn't add them to the context.  I'm not sure anything does.  It's a surprise.  Back to the drawing board.
Comment 10 Steffen Pingel CLA 2012-03-14 18:36:51 EDT
*** Bug 374315 has been marked as a duplicate of this bug. ***
Comment 11 Steffen Pingel CLA 2012-03-14 18:37:42 EDT
*** Bug 213101 has been marked as a duplicate of this bug. ***
Comment 12 Sam Davis CLA 2012-03-15 12:28:08 EDT
(In reply to comment #10)
> *** Bug 374315 has been marked as a duplicate of this bug. ***

I think EGit is triggering this bug for me. My Eclipse is freezing a lot. This has started very suddenly in the last several days, seemingly after switching branches in my dev workspace from Mylyn 3.6 to Mylyn 3.7 (but that may be a coincidence).

Would it help to close unneeded projects?
Comment 13 Steffen Pingel CLA 2012-03-15 12:47:15 EDT
Have you tried disabling EGit's automatic refresh?
Comment 14 Sam Davis CLA 2012-03-16 12:57:55 EDT
I didn't know you could do that! I will try that.
Comment 15 Sam Davis CLA 2012-03-16 13:54:13 EDT
That did not help. I just had Eclipse freeze when deleting 2 branches, and the stack trace shows that it was not a coincidence:

Name: main
State: RUNNABLE
Total blocked: 378,815  Total waited: 122

Stack trace: 
org.eclipse.jdt.internal.core.JavaModelManager.getInfo(JavaModelManager.java:1939)
   - locked org.eclipse.jdt.internal.core.JavaModelManager@b18755
org.eclipse.jdt.internal.core.JavaModelManager.determineIfOnClasspath(JavaModelManager.java:1005)
org.eclipse.jdt.internal.core.JavaModelManager.create(JavaModelManager.java:907)
org.eclipse.jdt.internal.core.JavaModelManager.create(JavaModelManager.java:837)
org.eclipse.jdt.core.JavaCore.create(JavaCore.java:2696)
org.eclipse.jdt.internal.ui.ResourceAdapterFactory.getAdapter(ResourceAdapterFactory.java:44)
org.eclipse.core.internal.adapter.AdapterFactoryProxy.getAdapter(AdapterFactoryProxy.java:80)
org.eclipse.core.internal.runtime.AdapterManager.getAdapter(AdapterManager.java:295)
org.eclipse.core.runtime.PlatformObject.getAdapter(PlatformObject.java:66)
org.eclipse.mylyn.internal.java.ui.JavaStructureBridge.acceptsObject(JavaStructureBridge.java:207)
org.eclipse.mylyn.internal.context.core.ContextCorePlugin.getStructureBridge(ContextCorePlugin.java:268)
org.eclipse.mylyn.context.core.ContextCore.getStructureBridge(ContextCore.java:41)
*org.eclipse.mylyn.context.ui.InterestFilter.select(InterestFilter.java:86)*
org.eclipse.jface.viewers.ViewerFilter.filter(ViewerFilter.java:51)
org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:921)
org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:605)
org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2620)
org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1908)
org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:721)
org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1915)
org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:721)
org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1915)
org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:721)
org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1883)
org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1840)
org.eclipse.ui.navigator.CommonViewer.internalRefresh(CommonViewer.java:561)
org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1535)
org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443)
org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403)
org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404)
org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1533)
org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:548)
org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:353)
org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:510)
org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider$3.run(ResourceExtensionContentProvider.java:294)
org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider.runUpdates(ResourceExtensionContentProvider.java:306)
org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider.access$1(ResourceExtensionContentProvider.java:303)
org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider$1.run(ResourceExtensionContentProvider.java:129)
org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
   - locked org.eclipse.swt.widgets.RunnableLock@18ceadb
org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
org.eclipse.jface.window.Window.open(Window.java:801)
org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:334)
org.eclipse.egit.ui.internal.repository.tree.command.DeleteBranchCommand$1.run(DeleteBranchCommand.java:70)
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
*org.eclipse.egit.ui.internal.repository.tree.command.DeleteBranchCommand.execute(DeleteBranchCommand.java:46)*
org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
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.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)
org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)
org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
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:344)
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:622)
org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
org.eclipse.equinox.launcher.Main.run(Main.java:1410)
org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Comment 16 Sam Davis CLA 2012-03-22 18:51:47 EDT
Eclipse froze for about a minute just now (JConsole indicates it is this bug) when I was switching branches, and when it came back to life there was an error which makes me suspect that git is removing files while the build is going on and that is creating problems. Note that the file in question should be present on both branches.

java.lang.IllegalArgumentException: Element not found: /com.tasktop.web.ui/bin/com/tasktop/internal/web/ui/editors/browser/TasktopWebBrowserHandler$OpenUrl.class.
	at org.eclipse.core.internal.watson.ElementTree.elementNotFound(ElementTree.java:256)
	at org.eclipse.core.internal.watson.ElementTree.getElementDataIgnoreCase(ElementTree.java:388)
	at org.eclipse.core.internal.resources.Resource.findExistingResourceVariant(Resource.java:985)
	at org.eclipse.core.internal.resources.Resource.checkDoesNotExist(Resource.java:304)
	at org.eclipse.core.internal.resources.Resource.checkDoesNotExist(Resource.java:286)
	at org.eclipse.core.internal.resources.File.create(File.java:111)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFileContents(AbstractImageBuilder.java:844)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFile(AbstractImageBuilder.java:823)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.acceptResult(AbstractImageBuilder.java:187)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:508)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:364)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:178)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:301)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:60)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:254)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:184)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 17 aleix CLA 2015-09-16 09:30:34 EDT
Reproduced with luna and mars (R) on windows xp or windows 7 ->
   On workstation quad core, windows 7 => cannot reproduce
   On amazon virtual machine + windows 7 + dual core => reproduced

It seems a big process on graphic thread when user activate a task


Reproduction sequence:

0. Workspace with a lot of files
1. Open with java editor a big file (filesize more than 1Mb)
2. Write some text -> eclipse NOT hunged
3. Activate local mylyn task (without conectors)
4. Write some text -> at first/third character eclipse hungs
Comment 18 aleix CLA 2015-09-16 09:43:16 EDT
Would this bug be related with improvement 188810 ?? 

   https://bugs.eclipse.org/bugs/show_bug.cgi?id=188810
Comment 19 Jorrit Schippers CLA 2016-03-02 07:28:39 EST
Created attachment 260042 [details]
thread dump with PDT and Mylyn

I experience a similar issue with the PHP Development Tools / DLTK (see bug #465855). The attached thread dump shows that the main thread stack contains 'org.eclipse.mylyn.monitor.ui.AbstractUserInteractionMonitor.selectionChanged' while the main thread is blocked. The main thread is blocked after I click save in a PHP editor.
Comment 20 Sam Davis CLA 2016-03-02 12:51:06 EST
It looks like it's blocked trying to acquire a lock in org.eclipse.dltk.internal.core.SourceModule.acquire(SourceModule.java:251). You might want to report that to DLTK.
Comment 21 Eclipse Webmaster CLA 2022-11-15 11:45:08 EST
Mylyn has been restructured, and our issue tracking has moved to GitHub [1].

We are closing ~14K Bugzilla issues to give the new team a fresh start. If you feel that this issue is still relevant, please create a new one on GitHub.

[1] https://github.com/orgs/eclipse-mylyn