From cba578aedd1a9085b804e8a6014de35cfc599193 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Thu, 19 Mar 2015 14:17:06 +0100 Subject: [PATCH] SONAR-6236 Put a warning when a widget is not on any dashboard (unsatisfied untold DB constraint) --- .../org/sonar/server/startup/RenameIssueWidgets.java | 8 +++++++- .../server/startup/RenameIssueWidgetsTest/after.xml | 10 ++++++++++ .../server/startup/RenameIssueWidgetsTest/before.xml | 4 ++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/startup/RenameIssueWidgets.java b/server/sonar-server/src/main/java/org/sonar/server/startup/RenameIssueWidgets.java index 5ae53e4f847..629edcb22ca 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/startup/RenameIssueWidgets.java +++ b/server/sonar-server/src/main/java/org/sonar/server/startup/RenameIssueWidgets.java @@ -23,6 +23,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import org.picocontainer.Startable; import org.sonar.api.utils.System2; +import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Loggers; import org.sonar.core.dashboard.DashboardDto; import org.sonar.core.dashboard.WidgetDto; @@ -39,6 +40,8 @@ import java.util.Map; public class RenameIssueWidgets implements Startable { + private static final Logger LOGGER = Loggers.get(RenameIssueWidgets.class); + private static final String TASK_KEY = "RenameIssueWidgets"; private static final String WIDGET_FALSE_POSITIVES = "false_positive_reviews"; @@ -81,7 +84,7 @@ public class RenameIssueWidgets implements Startable { WIDGET_UNRESOLVED_BY_STATUS, "statuses" ); - Loggers.get(getClass()).info("Replacing issue related widgets with issue filter widgets"); + LOGGER.info("Replacing issue related widgets with issue filter widgets"); List updatedWidgetIds = Lists.newArrayList(); List newWidgetProperties = Lists.newArrayList(); @@ -146,6 +149,9 @@ public class RenameIssueWidgets implements Startable { private String getReplacementWidgetKey(DbSession session, WidgetDto widget) { DashboardDto dashboard = dbClient.dashboardDao().getNullableByKey(session, widget.getDashboardId()); + if (dashboard == null) { + LOGGER.warn(String.format("Widget with ID=%d is not displayed on any dashboard, updating nevertheless", widget.getId())); + } boolean isOnGlobalDashboard = dashboard != null && dashboard.getGlobal(); return isOnGlobalDashboard && widget.getResourceId() == null ? WIDGET_ISSUE_FILTER : WIDGET_PROJECT_ISSUE_FILTER; diff --git a/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/after.xml b/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/after.xml index d97feacbf3f..f7b741fe7ff 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/after.xml +++ b/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/after.xml @@ -102,6 +102,16 @@ + + + + + + + + + diff --git a/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/before.xml b/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/before.xml index 65644a5dd54..030e722c0dc 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/before.xml +++ b/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/before.xml @@ -86,5 +86,9 @@ + + + -- 2.39.5