Community
Participate
Working Groups
In my fairly huge workspace the Quick Type hierarchy (Cmd + T) occasionally performs really poor. Especially when building large hierarchies. What I noticed it that there is no way for a user to cancel/abort the command. The UI is blocked with a spinning wheel. Sometimes I notice a cancel button in the status line. However, that seems to go away after pressing ESC and/or switching to a different application (Cmd+tab). When switching back to Eclipse with Cmd+tab the wheel is still spinning and no way to cancel. Expected: ESC is always working to cancel/abort Cmd+T. The main UI thread is stuck at: org.eclipse.swt.internal.cocoa.OS.objc_msgSend_bool(long, long, long, long) OS.java (native) org.eclipse.swt.internal.cocoa.NSRunLoop.runMode(NSString, NSDate) NSRunLoop.java:40 org.eclipse.swt.widgets.Display.sleep() Display.java:4951 org.eclipse.jface.operation.ModalContext$ModalContextThread.block() ModalContext.java:167 org.eclipse.jface.operation.ModalContext.run(IRunnableWithProgress, boolean, IProgressMonitor, Display) ModalContext.java:368 org.eclipse.ui.internal.WorkbenchWindow.lambda$7(StatusLineManager, IRunnableWithProgress, boolean, InvocationTargetException[], InterruptedException[]) WorkbenchWindow.java:2353 org.eclipse.ui.internal.WorkbenchWindow$$Lambda$911.run() org.eclipse.swt.custom.BusyIndicator.showWhile(Display, Runnable) BusyIndicator.java:74 org.eclipse.ui.internal.WorkbenchWindow.run(boolean, boolean, IRunnableWithProgress) WorkbenchWindow.java:2351 org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.ensureRefreshedTypeHierarchy(IJavaElement[], IRunnableContext) TypeHierarchyLifeCycle.java:212 org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.ensureRefreshedTypeHierarchy(IJavaElement, IRunnableContext) TypeHierarchyLifeCycle.java:161 org.eclipse.jdt.internal.ui.typehierarchy.HierarchyInformationControl.setInput(Object) HierarchyInformationControl.java:275 org.eclipse.jface.text.AbstractInformationControlManager.internalShowInformationControl(Rectangle, Object) AbstractInformationControlManager.java:1151 org.eclipse.jface.text.AbstractInformationControlManager.presentInformation() AbstractInformationControlManager.java:1120 org.eclipse.jface.text.AbstractInformationControlManager.setInformation(Object, Rectangle) AbstractInformationControlManager.java:431 org.eclipse.jface.text.information.InformationPresenter.computeInformation() InformationPresenter.java:321 org.eclipse.jface.text.AbstractInformationControlManager.doShowInformation() AbstractInformationControlManager.java:1101 org.eclipse.jface.text.AbstractInformationControlManager.showInformation() AbstractInformationControlManager.java:1091 org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(int) JavaSourceViewer.java:175 org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(int) CompilationUnitEditor.java:205 org.eclipse.ui.texteditor.TextOperationAction.lambda$0() TextOperationAction.java:130 org.eclipse.ui.texteditor.TextOperationAction$$Lambda$940.run() org.eclipse.swt.custom.BusyIndicator.showWhile(Display, Runnable) BusyIndicator.java:74 org.eclipse.ui.texteditor.TextOperationAction.run() TextOperationAction.java:130 org.eclipse.jface.action.Action.runWithEvent(Event) Action.java:474 org.eclipse.jface.commands.ActionHandler.execute(ExecutionEvent) ActionHandler.java:121 org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(IEclipseContext, Map, Event, IEvaluationContext) E4HandlerProxy.java:97 jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) NativeMethodAccessorImpl.java (native) jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Object, Object[]) NativeMethodAccessorImpl.java:62 jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[]) DelegatingMethodAccessorImpl.java:43 java.lang.reflect.Method.invoke(Object, Object[]) Method.java:566 org.eclipse.e4.core.internal.di.MethodRequestor.execute() MethodRequestor.java:58 org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(Object, Class, Class, Object, PrimaryObjectSupplier, PrimaryObjectSupplier, boolean, boolean, boolean) InjectorImpl.java:319 org.eclipse.e4.core.internal.di.InjectorImpl.invoke(Object, Class, Object, PrimaryObjectSupplier, PrimaryObjectSupplier) InjectorImpl.java:253 org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(Object, Class, IEclipseContext, IEclipseContext, Object) ContextInjectionFactory.java:173 org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(ExecutionEvent) HandlerServiceHandler.java:156 org.eclipse.core.commands.Command.executeWithChecks(ExecutionEvent) Command.java:488 org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(Object, Object) ParameterizedCommand.java:487 org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(ParameterizedCommand, IEclipseContext) HandlerServiceImpl.java:213 org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(ParameterizedCommand, Event) KeyBindingDispatcher.java:308 org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(List, Event) KeyBindingDispatcher.java:584 org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(List, Event) KeyBindingDispatcher.java:653 org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(Event) KeyBindingDispatcher.java:443 org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$2(KeyBindingDispatcher, Event) KeyBindingDispatcher.java:386 org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(Event) KeyBindingDispatcher.java:96 org.eclipse.swt.widgets.EventTable.sendEvent(Event) EventTable.java:89 org.eclipse.swt.widgets.Display.filterEvent(Event) Display.java:1111 org.eclipse.swt.widgets.Display.sendEvent(EventTable, Event) Display.java:4380 org.eclipse.swt.widgets.Widget.sendEvent(Event) Widget.java:1512 org.eclipse.swt.widgets.Widget.sendEvent(int, Event, boolean) Widget.java:1535 org.eclipse.swt.widgets.Widget.sendEvent(int, Event) Widget.java:1520 org.eclipse.swt.widgets.Widget.sendKeyEvent(int, Event) Widget.java:1549 org.eclipse.swt.widgets.Widget.sendKeyEvent(NSEvent, int) Widget.java:1545 org.eclipse.swt.widgets.Canvas.sendKeyEvent(NSEvent, int) Canvas.java:522 org.eclipse.swt.widgets.Control.doCommandBySelector(long, long, long) Control.java:1081 org.eclipse.swt.widgets.Display.windowProc(long, long, long) Display.java:6184 org.eclipse.swt.internal.cocoa.OS.objc_msgSend(long, long, long) OS.java (native) org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSArray) NSResponder.java:59 org.eclipse.swt.widgets.Composite.keyDown(long, long, long) Composite.java:606 org.eclipse.swt.widgets.Display.windowProc(long, long, long) Display.java:6016 org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(objc_super, long, long) OS.java (native) org.eclipse.swt.widgets.Widget.callSuper(long, long, long) Widget.java:235 org.eclipse.swt.widgets.Widget.windowSendEvent(long, long, long) Widget.java:2150 org.eclipse.swt.widgets.Shell.windowSendEvent(long, long, long) Shell.java:2401 org.eclipse.swt.widgets.Display.windowProc(long, long, long) Display.java:6136 org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(objc_super, long, long) OS.java (native) org.eclipse.swt.widgets.Display.applicationSendEvent(long, long, long) Display.java:5386 org.eclipse.swt.widgets.Display.applicationProc(long, long, long) Display.java:5522 org.eclipse.swt.internal.cocoa.OS.objc_msgSend(long, long, long) OS.java (native) org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSEvent) NSApplication.java:117 org.eclipse.swt.widgets.Display.readAndDispatch() Display.java:3786 org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run() PartRenderingEngine.java:1157 org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm, Runnable) Realm.java:338 org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(MApplicationElement, IEclipseContext) PartRenderingEngine.java:1046 org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(MApplicationElement) E4Workbench.java:155 org.eclipse.ui.internal.Workbench.lambda$3(Display, WorkbenchAdvisor, int[]) Workbench.java:644 org.eclipse.ui.internal.Workbench$$Lambda$130.run() org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm, Runnable) Realm.java:338 org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) Workbench.java:551 org.eclipse.ui.PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) PlatformUI.java:153 org.eclipse.ui.internal.ide.application.IDEApplication.start(IApplicationContext) IDEApplication.java:150 org.eclipse.equinox.internal.app.EclipseAppHandle.run(Object) EclipseAppHandle.java:203 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Object) EclipseAppLauncher.java:134 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Object) EclipseAppLauncher.java:104 org.eclipse.core.runtime.adaptor.EclipseStarter.run(Object) EclipseStarter.java:401 org.eclipse.core.runtime.adaptor.EclipseStarter.run(String[], Runnable) EclipseStarter.java:255 jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) NativeMethodAccessorImpl.java (native) jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Object, Object[]) NativeMethodAccessorImpl.java:62 jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[]) DelegatingMethodAccessorImpl.java:43 java.lang.reflect.Method.invoke(Object, Object[]) Method.java:566 org.eclipse.equinox.launcher.Main.invokeFramework(String[], URL[]) Main.java:657 org.eclipse.equinox.launcher.Main.basicRun(String[]) Main.java:594 org.eclipse.equinox.launcher.Main.run(String[]) Main.java:1465 The ModalContext thread is busy reading the index org.eclipse.jdt.internal.core.index.DiskIndex.addQueryResults(char[][], char[], int, MemoryIndex) DiskIndex.java org.eclipse.jdt.internal.core.index.Index.query(char[][], char[], int) Index.java:163 org.eclipse.jdt.internal.core.search.matching.SuperTypeReferencePattern.queryIn(Index) SuperTypeReferencePattern.java:280 org.eclipse.jdt.core.search.SearchPattern.findIndexMatches(Index, IndexQueryRequestor, SearchParticipant, IJavaSearchScope, IProgressMonitor) SearchPattern.java:2419 org.eclipse.jdt.internal.core.search.matching.MatchLocator.findIndexMatches(SearchPattern, Index, IndexQueryRequestor, SearchParticipant, IJavaSearchScope, IProgressMonitor) MatchLocator.java:296 org.eclipse.jdt.internal.core.search.PatternSearchJob.search(Index, IProgressMonitor) PatternSearchJob.java:117 org.eclipse.jdt.internal.core.search.SubTypeSearchJob.search(Index, IProgressMonitor) SubTypeSearchJob.java:49 org.eclipse.jdt.internal.core.search.PatternSearchJob.execute(IProgressMonitor) PatternSearchJob.java:72 org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurrentJob(IJob, int, IProgressMonitor) JobManager.java:265 org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.legacySearchAllPossibleSubTypes(IType, IJavaSearchScope, Map, IPathRequestor, int, IProgressMonitor) IndexBasedHierarchyBuilder.java:676 org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.searchAllPossibleSubTypes(IType, IJavaSearchScope, Map, IPathRequestor, int, IProgressMonitor) IndexBasedHierarchyBuilder.java:513 org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.determinePossibleSubTypes(HashSet, IProgressMonitor) IndexBasedHierarchyBuilder.java:465 org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.build(boolean) IndexBasedHierarchyBuilder.java:158 org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.compute() TypeHierarchy.java:323 org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh(IProgressMonitor) TypeHierarchy.java:1319 org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation.executeOperation() CreateTypeHierarchyOperation.java:94 org.eclipse.jdt.internal.core.JavaModelOperation.run(IProgressMonitor) JavaModelOperation.java:740 org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(IProgressMonitor) JavaModelOperation.java:806 org.eclipse.jdt.internal.core.BinaryType.newTypeHierarchy(WorkingCopyOwner, IProgressMonitor) BinaryType.java:963 org.eclipse.jdt.internal.core.BinaryType.newTypeHierarchy(IProgressMonitor) BinaryType.java:922 org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.createTypeHierarchy(IJavaElement[], IProgressMonitor) TypeHierarchyLifeCycle.java:295 org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.doHierarchyRefresh(IJavaElement[], IProgressMonitor) TypeHierarchyLifeCycle.java:325 org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.lambda$0(IJavaElement[], IProgressMonitor) TypeHierarchyLifeCycle.java:204 org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle$$Lambda$949.run(IProgressMonitor) org.eclipse.jface.operation.ModalContext$ModalContextThread.run() ModalContext.java:122
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.