为什么Eclipse Juno 4.2会运行“JPA Java Change Event Handler”进程?

65
我刚刚升级到Eclipse Juno 4.2。我有一个全新的干净工作区,但导入了以前在Eclipse 3.7中使用过的项目,因此其中有一些Eclipse元数据。
当转移到4.2时,我将一个项目转换为使用“项目Facets”。唯一启用的Facet是“Java”。
然而,我经常在进度视图中看到“JPA Java Change Event Handler(Waiting)”出现。我确实在项目中有JPA注释的类,但我没有启用JPA Facet。
那么...为什么Eclipse要运行这些任务呢?

Screenshot of eclipse progress window

更新:已向Eclipse提交错误报告,并且目前看来正在被查看:https://bugs.eclipse.org/bugs/show_bug.cgi?id=386171


1
好问题!我也遇到了同样的问题。还在调查中... - Jose
看一下这个问题,它还展示了如何禁用导致麻烦的JPT:https://dev59.com/questions/amIk5IYBdhLWcg3wBqKW#20142580 - mwhs
6个回答

21

遗憾的是,JPA Java完成建议扩展点错误地强制激活了o.e.jpt.jpa.core插件。一旦我们的插件被激活,我们就开始监听Java事件和Facet事件,无论是否是JPA Faceted。在Juno中,这些后台线程被转换为Eclipse Jobs框架。在Helios中,您不会在进度视图中看到它们,但同样存在问题。

感谢您对Dalihttps://bugs.eclipse.org/bugs/show_bug.cgi?id=386171报告此问题。

更新:该错误已在Juno SR1中得到修复,感谢JDT Text快速解决此Dali bug!

更新2:对于其他用例仍然存在此问题。在Juno SR2中,正在处理三个错误,将有助于解决此问题。其中一些具有进一步的修复需要进入Kepler。请参见以下错误:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=397778

https://bugs.eclipse.org/bugs/show_bug.cgi?id=397606

https://bugs.eclipse.org/bugs/show_bug.cgi?id=386393


6
这个错误还没有被修复,在最新的Eclipse 3.x和4.x版本中(我正在使用最新的STS构建版本)会出现这个错误。我从未使用过JPA,我没有提供程序,也没有启用任何与JPA相关的功能,没有启用任何项目方面,没有任何设置。然而,我在Eclipse中遭受了这种困扰。 - Alex
6
仍未修复:版本:Kepler Service Release 1 Build id: 20130919-0819。 - jonathan.cone
4
最新版的Luna仍未修复。 - peterh
9
仍未在火星上修复。 - eztam
7
在使用Spring STS 3.8.2时,Eclipse Neon 4.6.1版本仍存在问题,尚未得到修复。 - Selaron
显示剩余11条评论

16

每当我在Window => Preferences => Validation中禁用JPA Validator时,我都会遇到这种情况。启用BuildManual的验证可以消除这个问题。


1
我知道这有点久了,但只是为了确认一下,对于我来说(使用基于Luna的STS 3.6.1,使用Eclipse工作区之外的Git仓库),在那里进行任何更改都没有效果:禁用导致了这个问题,而启用则解决了你的问题? - Arjan
1
我在一个使用OpenJPA、由maven生成的JPA类和在Eclipse的maven设置中启用了"实验性注解处理"的项目中遇到了这个问题。当启用JPA验证时,项目需要很长时间才能构建,而当禁用它时,它会进入一个疯狂的循环,一遍又一遍地验证JPA - 这意味着构建永远无法完成。 - npe
你的意思是取消勾选这两个选项。 - Eric
不,我指的就是我写的。你的情况可能会有所不同。 - npe

6
我发现(在仍然存在的Eclipse Neon中),删除JPA验证器中的所有组是有效的。 点击JPA验证器右侧的框,并删除所有包含的组:

enter image description here


不是为我。 - Abdullah Khan

2
在我这种情况下,激进的解决方案是卸载"Dali JPA"。这似乎对我有用。
当然,这不是最好的解决方案。首先尝试按照NPE的答案中所述启用验证。2015年5月的Bug 386171有人报告了同样的问题,所以我不是唯一一个遇到这个问题的人。
如果找到更好的解决方案,我将非常高兴删除我的答案。

2
set eclipse_dir=D:\eclipse\release

mkdir %eclipse_dir%\disabled
mkdir %eclipse_dir%\disabled\features 
mkdir %eclipse_dir%\disabled\plugins

move %eclipse_dir%\plugins\org.eclipse.jpt.* disabled\plugins

for /f %%i in ('dir features\org.eclipse.jpt.*" /ad /b') do (
    move features\%%i" "%eclipse_dir%\disabled\features\%%i"
)

移除 JPT 插件,保持愉快。 - Glaucio Southier

1

我在eclipse 4.5.2 (mars 2)中遇到了同样的问题。我尝试了stackoverflow上几乎所有的答案,调整了我的eclipse设置(我认为可能是性能问题)。

在每个项目属性中禁用JPA后,问题停止了。

enter image description here

在这个更改之后,Eclipse一直在抱怨JPA事件处理程序,但是保存或清理不需要很长时间,因此看起来它已被禁用(在更改之前,它需要大约10分钟才能完成,现在只需要几秒钟)

希望这可以帮助某人解决这个问题。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接