Newest Eclipse's xdoclet builder has StackOverflowError

327 views Asked by At

I update my Eclipse from Neon to newest 2019-12 and I have a legacy project which uses xdoclet to generate EJB interfaces and classes. Neon's xdoclet builder works well but 2019-12's builder encounter StackOverflowError when it is triggered by code change and continuously running until overflow.

Both Eclipses point to the same xdoclet 1.2.3 installation with builder enabled.

Because of the build print msg on console as below, I compare 2 plugin directories and nothing different.

Buildfile: D:\Workspaces\Magic\.metadata\.plugins\org.eclipse.jst.j2ee.ejb.annotations.xdoclet\tempAnt.xml
init:
ejbdoclet:
[ejbdoclet] (XDocletMain.start                   94  ) Running <deploymentdescriptor/>
[ejbdoclet] Generating EJB deployment descriptor (ejb-jar.xml).
[ejbdoclet] (XDocletMain.start                   94  ) Running <remoteinterface/>
[ejbdoclet] Generating Remote interface for '...'.
...
[ejbdoclet] (XDocletMain.start                   94  ) Running <mdb/>
client.jar:
BUILD SUCCESSFUL

Newest Eclipse 2019-12 continuously build and build and build, print same successful messages as above again and again until overflow. Eclipse's log shows that it calls buildAndLaunch recursively... Any hint is welcoming!!!

java.lang.StackOverflowError
    at org.eclipse.core.runtime.ProgressMonitorWrapper.subTask(ProgressMonitorWrapper.java:168)
    at org.eclipse.core.runtime.SubProgressMonitor.subTask(SubProgressMonitor.java:197)
    at org.eclipse.core.runtime.SubMonitor$RootInfo.subTask(SubMonitor.java:255)
...
--1-------------------------------------------------------------------------------
    at org.eclipse.debug.ui.DebugUITools.buildAndLaunch(DebugUITools.java:1027)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.util.AntLauncherUtility.runUsingLauncher(AntLauncherUtility.java:150)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.util.AntLauncherUtility.runAnt(AntLauncherUtility.java:129)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.util.AntLauncherUtility.launch(AntLauncherUtility.java:113)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletAntProjectBuilder$1.run(XDocletAntProjectBuilder.java:118)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2317)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletAntProjectBuilder.buildUsingAnt(XDocletAntProjectBuilder.java:126)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletBuilder.build(XDocletBuilder.java:215)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletBuilder$2.visit(XDocletBuilder.java:336)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:67)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:51)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletBuilder.doIncrementalBuild(XDocletBuilder.java:344)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletBuilder.build(XDocletBuilder.java:201)
---------------------------------------------------------------------------------
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:833)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:833)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:220)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392)
    at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:515)
    at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:405)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:838)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:719)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1017)
    at org.eclipse.debug.ui.DebugUITools.buildAndLaunch(DebugUITools.java:1027)
--2-------------------------------------------------------------------------------
    at org.eclipse.debug.ui.DebugUITools.buildAndLaunch(DebugUITools.java:1027)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.util.AntLauncherUtility.runUsingLauncher(AntLauncherUtility.java:150)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.util.AntLauncherUtility.runAnt(AntLauncherUtility.java:129)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.util.AntLauncherUtility.launch(AntLauncherUtility.java:113)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletAntProjectBuilder$1.run(XDocletAntProjectBuilder.java:118)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2317)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletAntProjectBuilder.buildUsingAnt(XDocletAntProjectBuilder.java:126)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletBuilder.build(XDocletBuilder.java:215)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletBuilder$2.visit(XDocletBuilder.java:336)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:67)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:77)
    at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:51)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletBuilder.doIncrementalBuild(XDocletBuilder.java:344)
    at org.eclipse.jst.j2ee.ejb.annotations.internal.xdoclet.XDocletBuilder.build(XDocletBuilder.java:201)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:833)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
---------------------------------------------------------------------------------
...


1

There are 1 answers

4
SergioGodoy On

This works for me, In Eclipse you have to disable "Build (if required) before launching" on: Window -> Preferences -> Launching -> General Options.

Build (if required) before launching

Greetings!