| Summary: | [performance] refresh workspace with active task hogs CPU | ||||||
|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | Jörg von Frantzius <jfrantzius> | ||||
| Component: | Mylyn | Assignee: | 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: | unspecified | Keywords: | plan | ||||
| Target Milestone: | --- | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| Whiteboard: | |||||||
| Bug Depends on: | |||||||
| Bug Blocks: | 356109 | ||||||
| Attachments: |
|
||||||
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. 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. 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. 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? 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. 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. +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. 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. 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. *** Bug 374315 has been marked as a duplicate of this bug. *** *** Bug 213101 has been marked as a duplicate of this bug. *** (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? Have you tried disabling EGit's automatic refresh? I didn't know you could do that! I will try that. 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) 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) 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 Would this bug be related with improvement 188810 ?? https://bugs.eclipse.org/bugs/show_bug.cgi?id=188810 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. 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. 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 |
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