【发布时间】:2016-02-05 08:53:45
【问题描述】:
我一直在试用 SonarQube 5.2,但遇到以下错误:
org.apache.ibatis.exceptions.PersistenceException:
### Error updating database.
Cause:com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert duplicate key row in object 'dbo.projects' with unique index 'projects_uuid'. The duplicate key value is (AVDTnvuxTcMzGBo2P2Fw).
### The error may involve org.sonar.db.component.ComponentMapper.insert-Inline
### The error occurred while setting parameters
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert duplicate key row in object 'dbo.projects' with unique index 'projects_uuid'. The duplicate key value is (AVDTnvuxTcMzGBo2P2Fw).
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:26) ~[mybatis-3.2.7.jar:3.2.7]
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:154) ~[mybatis-3.2.7.jar:3.2.7]
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:141) ~[mybatis-3.2.7.jar:3.2.7]
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:51) ~[mybatis-3.2.7.jar:3.2.7]
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) ~[mybatis-3.2.7.jar:3.2.7]
at com.sun.proxy.$Proxy65.insert(Unknown Source) ~[na:na]
at org.sonar.db.component.ComponentDao.insert(ComponentDao.java:282) ~[sonar-db-5.2.jar:na]
at org.sonar.server.computation.step.PersistComponentsStep$PersistComponentStepsVisitor.persistComponent(PersistComponentsStep.java:172) ~[sonar-server-5.2.jar:na]
at org.sonar.server.computation.step.PersistComponentsStep$PersistComponentStepsVisitor.persistAndPopulateCache(PersistComponentsStep.java:164) ~[sonar-server-5.2.jar:na]
at org.sonar.server.computation.step.PersistComponentsStep$PersistComponentStepsVisitor.visitModule(PersistComponentsStep.java:130) ~[sonar-server-5.2.jar:na]
at org.sonar.server.computation.component.PathAwareCrawler.visitNode(PathAwareCrawler.java:83) ~[sonar-server-5.2.jar:na]
at org.sonar.server.computation.component.PathAwareCrawler.visit(PathAwareCrawler.java:51) ~[sonar-server-5.2.jar:na]
at org.sonar.server.computation.component.PathAwareCrawler.visitChildren(PathAwareCrawler.java:71) ~[sonar-server-5.2.jar:na]
at org.sonar.server.computation.component.PathAwareCrawler.visit(PathAwareCrawler.java:54) ~[sonar-server-5.2.jar:na]
at org.sonar.server.computation.step.PersistComponentsStep.execute(PersistComponentsStep.java:77) ~[sonar-server-5.2.jar:na]
at org.sonar.server.computation.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:39) ~[sonar-server-5.2.jar:na]
at org.sonar.server.computation.taskprocessor.report.ReportTaskProcessor.process(ReportTaskProcessor.java:53) ~[sonar-server-5.2.jar:na]
at org.sonar.server.computation.taskprocessor.CeWorkerRunnableImpl.executeTask(CeWorkerRunnableImpl.java:78) [sonar-server-5.2.jar:na]
at org.sonar.server.computation.taskprocessor.CeWorkerRunnableImpl.run(CeWorkerRunnableImpl.java:55) [sonar-server-5.2.jar:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.8.0_45]
at java.util.concurrent.FutureTask.runAndReset(Unknown Source) [na:1.8.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source) [na:1.8.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [na:1.8.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_45]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_45]
仅当我尝试分析的解决方案有多个项目时才会发生这种情况。 SonarQube 5.1.2 可以很好地分析相同的项目。我有以下配置:
- SonarQube 5.2(带有 SQL Server 2012 数据库)
- C# 4.3
- Java 3.7
- LDAP 1.5
- Git 1.1
- SVN 1.2
- JavaScript 2.8
还有其他人遇到过这个问题吗?
【问题讨论】:
-
您确认您的数据库区分大小写吗?您能否也将以下文件发送给我们:.sonarqube\out\sonar-project.properties?谢谢
-
当然,区分大小写是个问题。在部署 5.2 以供日常使用之前,我设置了一个新环境来测试它,因此我还设置了一个全新的数据库并忘记了这一步。感谢您的帮助。
-
太好了,这是个好消息!