aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2014-10-09 14:43:18 +0200
committerTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2014-10-09 15:21:51 +0200
commit7238f4b5370b7a08145fc275ebc9900b82c2c4e3 (patch)
tree81f939b9010b38dca32cdb3753dd3af79a55161a /server
parent15b326bf6c8a77591a15f4b2705309c3cc68b186 (diff)
downloadsonarqube-7238f4b5370b7a08145fc275ebc9900b82c2c4e3.tar.gz
sonarqube-7238f4b5370b7a08145fc275ebc9900b82c2c4e3.zip
fix large tests cause by a non standard sql query
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java17
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/db/AnalysisReportDao.java3
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/db/AnalysisReportDaoTest.java25
3 files changed, 31 insertions, 14 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java b/server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java
index 3ab613cdf6c..597e1b9ce62 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java
@@ -70,7 +70,6 @@ public class ComputationService implements ServerComponent {
checkThatProjectExistsInDatabase(projectKey, session);
insertReportInDatabase(report, session);
} finally {
- LOG.debug(String.format("Analysis for project '%s' inserted in the queue", projectKey));
MyBatis.closeQuietly(session);
}
}
@@ -127,18 +126,22 @@ public class ComputationService implements ServerComponent {
synchronizeProjectPermissionsIfNotFound(session, projectKey);
indexProjectIssues(session, projectKey);
} catch (Exception exception) {
- LOG.debug(String.format("Error during analysis '%s' of project '%s'", report.getId(), projectKey), exception);
+ LOG.error(String.format("Error while analyzing %s'", report), exception);
} finally {
- deleteReportFromQueue(session, report);
+ removeSilentlyReportFromQueue(session, report);
MyBatis.closeQuietly(session);
}
- LOG.debug(String.format("Analysis '%s' of project '%s' successfully finished.", report.getId(), projectKey));
+ LOG.info(String.format("Analysis of %s successfully finished.", report));
}
- private void deleteReportFromQueue(DbSession session, AnalysisReportDto report) {
- dao.delete(session, report);
- session.commit();
+ private void removeSilentlyReportFromQueue(DbSession session, AnalysisReportDto report) {
+ try {
+ dao.delete(session, report);
+ session.commit();
+ } catch (Exception exception) {
+ LOG.error(String.format("Error while the report analysis, deleting %s", report), exception);
+ }
}
private void indexProjectIssues(DbSession session, String projectKey) {
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/db/AnalysisReportDao.java b/server/sonar-server/src/main/java/org/sonar/server/computation/db/AnalysisReportDao.java
index 200c36f7596..30684f745f3 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/db/AnalysisReportDao.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/db/AnalysisReportDao.java
@@ -89,8 +89,9 @@ public class AnalysisReportDao extends BaseDao<AnalysisReportMapper, AnalysisRep
@CheckForNull
public AnalysisReportDto tryToBookReportAnalysis(DbSession session, AnalysisReportDto report) {
checkNotNull(report.getId());
+ checkNotNull(report.getProjectKey());
- int nbOfReportBooked = mapper(session).updateWithBookingReport(report.getId(), new Date(system2.now()), PENDING, WORKING);
+ int nbOfReportBooked = mapper(session).updateWithBookingReport(report.getId(), report.getProjectKey(), new Date(system2.now()), PENDING, WORKING);
if (nbOfReportBooked == 0) {
return null;
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/db/AnalysisReportDaoTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/db/AnalysisReportDaoTest.java
index bca5e5be1b1..9555d4f72d1 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/computation/db/AnalysisReportDaoTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/computation/db/AnalysisReportDaoTest.java
@@ -41,6 +41,8 @@ import static org.sonar.core.computation.db.AnalysisReportDto.Status.PENDING;
import static org.sonar.core.computation.db.AnalysisReportDto.Status.WORKING;
public class AnalysisReportDaoTest {
+ private static final String DEFAULT_PROJECT_KEY = "123456789-987654321";
+
@Rule
public TestDatabase db = new TestDatabase();
private AnalysisReportDao dao;
@@ -64,7 +66,7 @@ public class AnalysisReportDaoTest {
@Test
public void insert_multiple_reports() {
AnalysisReportDto report = new AnalysisReportDto()
- .setProjectKey("123456789-987654321")
+ .setProjectKey(DEFAULT_PROJECT_KEY)
.setData("data-project")
.setStatus(PENDING);
report.setCreatedAt(DateUtils.parseDate("2014-09-24"))
@@ -183,7 +185,7 @@ public class AnalysisReportDaoTest {
public void cannot_book_an_already_working_report_analysis() {
db.prepareDbUnit(getClass(), "one_busy_report_analysis.xml");
- AnalysisReportDto report = AnalysisReportDto.newForTests(1L);
+ AnalysisReportDto report = newDefaultReport();
AnalysisReportDto reportBooked = dao.tryToBookReportAnalysis(session, report);
assertThat(reportBooked).isNull();
@@ -195,7 +197,7 @@ public class AnalysisReportDaoTest {
when(system2.now()).thenReturn(mockedNow.getTime());
db.prepareDbUnit(getClass(), "one_available_analysis.xml");
- AnalysisReportDto report = AnalysisReportDto.newForTests(1L);
+ AnalysisReportDto report = newDefaultReport();
AnalysisReportDto reportBooked = dao.tryToBookReportAnalysis(session, report);
assertThat(reportBooked.getId()).isEqualTo(1L);
@@ -207,7 +209,7 @@ public class AnalysisReportDaoTest {
public void cannot_book_available_report_analysis_while_having_a_working_one_on_the_same_project() {
db.prepareDbUnit(getClass(), "one_available_analysis_but_another_busy_on_same_project.xml");
- AnalysisReportDto report = AnalysisReportDto.newForTests(1L);
+ AnalysisReportDto report = newDefaultReport();
AnalysisReportDto reportBooked = dao.tryToBookReportAnalysis(session, report);
assertThat(reportBooked).isNull();
@@ -217,7 +219,7 @@ public class AnalysisReportDaoTest {
public void book_available_report_analysis_while_having_one_working_one_another() {
db.prepareDbUnit(getClass(), "book_available_report_analysis_while_having_one_working_one_another.xml");
- AnalysisReportDto report = AnalysisReportDto.newForTests(1L);
+ AnalysisReportDto report = newDefaultReport();
AnalysisReportDto reportBooked = dao.tryToBookReportAnalysis(session, report);
assertThat(reportBooked.getId()).isEqualTo(1L);
@@ -227,7 +229,7 @@ public class AnalysisReportDaoTest {
public void delete_one_analysis_report() {
db.prepareDbUnit(getClass(), "one_analysis_report.xml");
- dao.delete(session, AnalysisReportDto.newForTests(1L));
+ dao.delete(session, newDefaultReport());
session.commit();
db.assertDbUnit(getClass(), "truncate-result.xml", "analysis_reports");
@@ -247,4 +249,15 @@ public class AnalysisReportDaoTest {
public void doUpdate_is_not_implemented_yet() {
dao.doUpdate(session, new AnalysisReportDto());
}
+
+ private AnalysisReportDto newDefaultReport() {
+ AnalysisReportDto report = AnalysisReportDto.newForTests(1L)
+ .setStatus(PENDING)
+ .setProjectKey(DEFAULT_PROJECT_KEY);
+ report
+ .setCreatedAt(DateUtils.parseDate("2014-09-30"))
+ .setUpdatedAt(DateUtils.parseDate("2014-09-30"));
+
+ return report;
+ }
}