ceylon-ide-eclipse icon indicating copy to clipboard operation
ceylon-ide-eclipse copied to clipboard

Control-hover on Java element super slow

Open FroMage opened this issue 8 years ago • 2 comments

When the IDE projects are open, if I go on CeylonBuilder.java in generateBinaries and hover with Ctrl pressed over the compile() call, I don't get the click pointer until about 20 seconds, to show me that I can navigate in that function. A thread dump showed the IDE busy doing this before it showed the pointer:


"main" prio=10 tid=0x00007ff67000a800 nid=0x2d8d runnable [0x00007ff678fd3000]
   java.lang.Thread.State: RUNNABLE
    at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:599)
    at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:316)
    at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:302)
    at org.eclipse.jdt.internal.core.JavaElement.exists(JavaElement.java:220)
    at com.redhat.ceylon.eclipse.util.JavaSearch.getCeylonNameAnnotationValue(JavaSearch.java:344)
    at com.redhat.ceylon.eclipse.util.JavaSearch.getCeylonSimpleName(JavaSearch.java:610)
    at com.redhat.ceylon.eclipse.util.JavaSearch.elementEqualsDeclaration(JavaSearch.java:692)
    at com.redhat.ceylon.eclipse.util.JavaSearch.toCeylonDeclaration(JavaSearch.java:1093)
    at com.redhat.ceylon.eclipse.util.JavaSearch.toCeylonDeclaration(JavaSearch.java:1122)
    at com.redhat.ceylon.eclipse.code.resolve.JavaToCeylonHyperlinkDetector.detectHyperlinks(JavaToCeylonHyperlinkDetector.java:109)
    at org.eclipse.ui.texteditor.HyperlinkDetectorRegistry$HyperlinkDetectorDelegate.detectHyperlinks(HyperlinkDetectorRegistry.java:80)
    at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:289)
    - locked <0x00000007e6cf2690> (a [Lorg.eclipse.jface.text.hyperlink.IHyperlinkDetector;)
    at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:261)
    at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseMove(HyperlinkManager.java:469)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:212)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4481)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1329)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3819)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3430)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:694)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:606)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1488)

   Locked ownable synchronizers:
    - None

Notably it slowed down the IDE considerably, preventing me from even navigating in the file while it was "doing stuff".

FroMage avatar Apr 21 '16 10:04 FroMage

I have also been experiencing some things like this. Another one for @davidfestal.

gavinking avatar Apr 21 '16 15:04 gavinking

Didn't manage to reproduce it for now. postponing to 1.3.1

davidfestal avatar Sep 09 '16 13:09 davidfestal