我将我的 Eclipse 从 Neon 更新到最新的 2019-12,并且我有一个使用 xdoclet 生成 EJB 接口和类的遗留项目。Neon 的 xdoclet 构建器运行良好,但 2019-12 的构建器在由代码更改触发并持续运行直到溢出时遇到 StackOverflowError。
两个 Eclipse 都指向同一个启用了构建器的 xdoclet 1.2.3 安装。
由于控制台上的 build print msg 如下所示,我比较了 2 个插件目录并没有什么不同。
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
最新的 Eclipse 2019-12 不断地构建和构建,一次又一次地打印与上面相同的成功消息,直到溢出。Eclipse 的日志显示它递归调用 buildAndLaunch ......任何提示都欢迎!
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)
---------------------------------------------------------------------------------
...