Sonar无法使用javax.persistence.NonUniqueResultException构建Jenkins构建项目

时间:2012-06-19 06:02:19

标签: maven jenkins sonarqube

我有一个项目,我已添加到我的Jenkins服务器。该项目包括父母和儿童maven pom文件。我为父文件和子文件pom文件添加了构建,一切都正常工作了一段时间,但是子构建停止了工作。

每当孩子接受声纳分析时,我都会得到这样的例外:

Caused by: javax.persistence.NonUniqueResultException: Expected single result, but got : [Snapshot[resourceId=1148,createdAt=2011-04-29 23:08:23.0,version=01.01.01.1054-SNAPSHOT,last=true,status=P,scope=PRJ,path=,depth=0,qualifier=TRK,rootId=<null>,parentId=<null>,rootProjectId=1148,period1Mode=previous_analysis,period2Mode=days,period3Mode=days,period4Mode=<null>,period5Mode=<null>,period1Param=2011-04-19,period2Param=5,period3Param=30,period4Param=<null>,period5Param=<null>,period1Date=2011-04-19 05:06:16.0,period2Date=2011-04-24 23:08:23.0,period3Date=2011-03-30 23:08:23.0,period4Date=<null>,period5Date=<null>,id=486870], Snapshot[resourceId=1148,createdAt=2011-05-04 09:52:04.0,version=01.01.01.1054-SNAPSHOT,last=true,status=P,scope=PRJ,path=495746.,depth=1,qualifier=BRC,rootId=495746,parentId=495746,rootProjectId=1149,period1Mode=previous_analysis,period2Mode=days,period3Mode=days,period4Mode=<null>,period5Mode=<null>,period1Param=2011-04-29,period2Param=5,period3Param=30,period4Param=<null>,period5Param=<null>,period1Date=2011-04-29 23:08:23.0,period2Date=2011-04-29 09:52:04.0,period3Date=2011-04-04 09:52:04.0,period4Date=<null>,period5Date=<null>,id=495748]]

我尝试删除并重新创建项目无济于事。任何解决方案?

1 个答案:

答案 0 :(得分:1)

这是Sonar版本中的错误&lt; 2.8。您可以在此处查看错误报告:Sonar-2329。基本上,当声纳同时分析父和子构建时,会出现问题。要解决这个问题,你应该做两件事:

1)从Jenkins中删除父版本或子版本。应该只有一个项目可以在Jenkins上构建。

2)您需要清除由并发分析导致的数据库损坏。您可以通过在声纳数据库上运行以下SQL命令来执行此操作:

update snapshots old_snap, snapshots new_snap set old_snap.islast=0 where old_snap.islast=1 and new_snap.created_at > old_snap.created_at and new_snap.project_id = old_snap.project_id and new_snap.islast=1

有关更多详细信息,请参阅错误报告,以及其他SQL方言的SQL命令。以上查询适用于MySQL。