buildship icon indicating copy to clipboard operation
buildship copied to clipboard

Buildship seems to be hanging when importing a new gradle project into Eclipse

Open clemensdev opened this issue 3 years ago • 2 comments

We have a multi project gradle build. Hence initially multiple projects need to be imported into Eclipse. When importing a new project the "Import preview" modal dialog stays open forever and hence blocks Eclipse

Expected Behavior

I'd expect that this window closes after a few seconds or a minute

Current Behavior

The preview dialog stays open for several minutes

Your Environment

Win10 gradle 6.8.3 Eclipse 2021-12 and latest greatest buildship from MarketPlace

Stacktraces of Eclipse and gradle-Process

Inspecting the stacktraces of eclipse and the gradle Process ( which, I guess, does the job ) reveal no "real action"

Eclipse:

"main" #1 prio=6 os_prio=0 cpu=7490656.25ms elapsed=43516.26s tid=0x00000274d8356000 nid=0x296c runnable  [0x00000088927fa000]
   java.lang.Thread.State: RUNNABLE
        at org.eclipse.swt.internal.win32.OS.CallWindowProc(Native Method)
        at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1542)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:4854)
        at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5997)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:5002)
        at org.eclipse.swt.internal.win32.OS.SendMessage(Native Method)
        at org.eclipse.swt.widgets.Tree.createItem(Tree.java:2092)
        at org.eclipse.swt.widgets.TreeItem.<init>(TreeItem.java:181)
        at org.eclipse.swt.widgets.TreeItem.<init>(TreeItem.java:85)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:420)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:425)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.showResultTree(ProjectPreviewWizardPage.java:399)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.access$300(ProjectPreviewWizardPage.java:78)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage$5.run(ProjectPreviewWizardPage.java:336)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)

gradle

"main" #1 prio=5 os_prio=0 cpu=890.63ms elapsed=1665.82s tid=0x00000173c533e000 nid=0x4534 waiting on condition  [0x00000068064fe000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x00000006808a6790> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:2081)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator.awaitStop(DaemonStateCoordinator.java:95)
        at org.gradle.launcher.daemon.server.Daemon.awaitExpiration(Daemon.java:247)
        at org.gradle.launcher.daemon.server.Daemon.stopOnExpiration(Daemon.java:221)
        at org.gradle.launcher.daemon.bootstrap.DaemonMain.doAction(DaemonMain.java:132)
        at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:50)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:62)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke([email protected]/Method.java:566)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
        at org.gradle.launcher.daemon.bootstrap.GradleDaemon.main(GradleDaemon.java:22)

   Locked ownable synchronizers:
        - None

"Incoming local TCP Connector on port 51905" #25 prio=5 os_prio=0 cpu=0.00ms elapsed=1664.73s tid=0x00000173f5ba1800 nid=0x5608 runnable  [0x0000006807cfe000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.ServerSocketChannelImpl.accept0([email protected]/Native Method)
        at sun.nio.ch.ServerSocketChannelImpl.accept([email protected]/ServerSocketChannelImpl.java:533)
        at sun.nio.ch.ServerSocketChannelImpl.accept([email protected]/ServerSocketChannelImpl.java:285)
        at org.gradle.internal.remote.internal.inet.TcpIncomingConnector$Receiver.run(TcpIncomingConnector.java:108)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
        at java.lang.Thread.run([email protected]/Thread.java:829)

Find attached the complete Eclipse and gradle stacktraces

Eclipse-stacktrace.txt gradle-stacktrace.txt

And some screenshots VisualVM showing the gradle process when it's "busy" VisualVM showing the gradle process when it's "idle" Eclipse "frozen", although the gradle process is "idle" Eclipse-frozen Buildship-gradle-process-busy Buildship-gradle-process-idle

clemensdev avatar Dec 22 '21 06:12 clemensdev

        at org.eclipse.swt.internal.win32.OS.CallWindowProc(Native Method)
        at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1542)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:4854)
        at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5997)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:5002)
        at org.eclipse.swt.internal.win32.OS.SendMessage(Native Method)
        at org.eclipse.swt.widgets.Tree.createItem(Tree.java:2092)
        at org.eclipse.swt.widgets.TreeItem.<init>(TreeItem.java:181)
        at org.eclipse.swt.widgets.TreeItem.<init>(TreeItem.java:85)
        at org.eclipse.buildship.ui.internal.wizard.project.ProjectPreviewWizardPage.populateRecursively(ProjectPreviewWizardPage.java:420)

what exactly is buildship/swt doing here?

clemensdev avatar Dec 22 '21 15:12 clemensdev

Workaround: omit "Next"-step(s) and just press the "Finish"-Button

clemensdev avatar Dec 27 '21 09:12 clemensdev