]> source.dussan.org Git - sonarqube.git/commitdiff
Revert "Revert SONAR-4785"
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 6 Feb 2014 12:38:38 +0000 (13:38 +0100)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 6 Feb 2014 12:38:38 +0000 (13:38 +0100)
This reverts commit a42510b9e77d6ba9938f0d578e3b0253a136e4e1.

21 files changed:
sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java
sonar-server/src/main/webapp/WEB-INF/app/controllers/api/issues_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/models/issue.rb
sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/issues/_issues_list.html.erb
sonar-server/src/test/java/org/sonar/server/issue/ws/IssueShowWsHandlerTest.java
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_display_name_when_no_message.json [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_on_removed_component.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_on_removed_project_and_component.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_action_plan.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_actions.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_actions_defined_by_plugins.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_assign_to_me_action.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_changelog.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_characteristics.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_comments.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_dates.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_set_severity_action.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_technical_debt.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_transitions.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_with_users.json
sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_without_assign_to_me_action.json

index aee8e61c1be767f2341d5048ae9a618a201f41da..1b8f0a5d2cce3c39e3c655fb9ced7306ba71a251 100644 (file)
@@ -97,6 +97,8 @@ public class IssueShowWsHandler implements RequestHandler {
   }
 
   private void writeIssue(IssueQueryResult result, DefaultIssue issue, JsonWriter json) {
+    String message = issue.message();
+    String ruleName = result.rule(issue).getName();
     Component component = result.component(issue);
     Component project = result.project(issue);
     String actionPlanKey = issue.actionPlanKey();
@@ -113,9 +115,9 @@ public class IssueShowWsHandler implements RequestHandler {
       .prop("project", issue.projectKey())
       .prop("projectLongName", project != null ? project.longName() : null)
       .prop("rule", issue.ruleKey().toString())
-      .prop("ruleName", result.rule(issue).getName())
+      .prop("ruleName", ruleName)
       .prop("line", issue.line())
-      .prop("message",issue.message())
+      .prop("message", message != null ? message : ruleName)
       .prop("resolution", issue.resolution())
       .prop("status", issue.status())
       .prop("severity", issue.severity())
index 7aa39a5161d32a3c5d642bcdd999cd9a56b5f6a3..7a935b0cbae69b8289f4eb3d922060aa69ca50de 100644 (file)
@@ -32,7 +32,7 @@ class Api::IssuesController < Api::ApiController
     hash = {
       :maxResultsReached => results.maxResultsReached,
       :paging => paging_to_hash(results.paging),
-      :issues => results.issues.map { |issue| Issue.to_hash(issue) },
+      :issues => results.issues.map { |issue| Issue.to_hash(issue, results.rule(issue).name) },
       :components => results.components.map { |component| component_to_hash(component) },
       :projects => results.projects.map { |project| component_to_hash(project) },
       :rules => results.rules.map { |rule| Rule.to_hash(rule) },
index c1d6e2d35ac5167b5f0815a52aa80d8754dd80bc..a3a34a3dd5dba207bfbd32fd48c0faf3f33cf339 100644 (file)
@@ -20,7 +20,7 @@
 
 class Issue
 
-  def self.to_hash(issue)
+  def self.to_hash(issue, rule_name=nil)
     hash = {
         :key => issue.key,
         :component => issue.componentKey,
@@ -30,7 +30,7 @@ class Issue
     }
     hash[:resolution] = issue.resolution if issue.resolution
     hash[:severity] = issue.severity if issue.severity
-    hash[:message] = issue.message if issue.message
+    hash[:message] = issue.message ? issue.message : rule_name
     hash[:line] = issue.line.to_i if issue.line
     hash[:effortToFix] = issue.effortToFix.to_f if issue.effortToFix
     hash[:technicalDebt] = technical_debt_to_hash(issue.technicalDebt) if issue.technicalDebt
index e3dbd405fe45d1ed67e81af364084757f7b23a2e..c6ce6bfe9013c5037731048559ba464d21b6a0c7 100644 (file)
@@ -38,7 +38,8 @@
         <td><img src="<%= ApplicationController.root_context -%>/images/priority/<%= issue.severity() -%>.png" title="<%= message('severity.' + issue.severity()) -%>"/></td>
         <td>
           <a class="rule-modal" href="#" onclick="return openModalWindow('<%= url_for :controller => 'issue', :action => 'show', :id => issue.key, :modal => true -%>', {'width': 800})">
-            <%= h truncate(issue.message, :length => 100) -%></a>
+            <!-- SONAR-4785 Display rule name if issue has no message -->
+            <%= h truncate(issue.message ? issue.message : results.rule(issue).name, :length => 100) -%></a>
           <% if last_comment %>
             <div class="comment-excerpt">
               <img src="<%= ApplicationController.root_context -%>/images/reviews/comment.png"/>
index aa2ec681d0b4a0563d8519690455d419a06e3507..c8337a872792501064ea8e57fa8da5bbfea5c558 100644 (file)
@@ -402,6 +402,19 @@ public class IssueShowWsHandlerTest {
     request.execute().assertJson(getClass(), "show_issue_with_changelog.json");
   }
 
+  /**
+   * SONAR-4785
+   */
+  @Test
+  public void show_issue_display_name_when_no_message() throws Exception {
+    Issue issue = createStandardIssue().setMessage(null);
+    issues.add(issue);
+
+    MockUserSession.set();
+    WsTester.TestRequest request = tester.newRequest("show").setParam("key", issue.key());
+    request.execute().assertJson(getClass(), "show_issue_display_name_when_no_message.json");
+  }
+
   private DefaultIssue createStandardIssue() {
     DefaultIssue issue = createIssue();
     addComponentAndProject();
@@ -411,6 +424,7 @@ public class IssueShowWsHandlerTest {
   private DefaultIssue createIssue() {
     return new DefaultIssue()
       .setKey("ABCD")
+      .setMessage("Fix it")
       .setComponentKey("org.sonar.server.issue.IssueClient")
       .setProjectKey("org.sonar.Sonar")
       .setRuleKey(RuleKey.of("squid", "AvoidCycle"))
diff --git a/sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_display_name_when_no_message.json b/sonar-server/src/test/resources/org/sonar/server/issue/ws/IssueShowWsHandlerTest/show_issue_display_name_when_no_message.json
new file mode 100644 (file)
index 0000000..9865380
--- /dev/null
@@ -0,0 +1,25 @@
+{
+  "issue": {
+    "key": "ABCD",
+    "component": "org.sonar.server.issue.IssueClient",
+    "componentLongName": "SonarQube :: Issue Client",
+    "componentQualifier": "FIL",
+    "project": "org.sonar.Sonar",
+    "projectLongName": "SonarQube",
+    "rule": "squid:AvoidCycle",
+    "ruleName": "Avoid cycle",
+    "message": "Avoid cycle",
+    "creationDate": "2014-01-22T19:10:03+0100",
+    "fCreationDate": "Jan 22, 2014 10:03 AM",
+    "transitions": [],
+    "actions": [],
+    "comments": [],
+    "changelog": [
+      {
+        "creationDate": "2014-01-22T19:10:03+0100",
+        "fCreationDate": "Jan 22, 2014 10:03 AM",
+        "diffs": ["Created"]
+      }
+    ]
+  }
+}
index 1f6563e1eac5841546a67f8fda33787f34498f1e..0391e0c6e8d373b49276a857ae23491ced9ca45b 100644 (file)
@@ -6,6 +6,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "creationDate": "2014-01-22T19:10:03+0100",
     "fCreationDate": "Jan 22, 2014 10:03 AM",
     "transitions": [],
index 74542d5ed0ec8f91ee63fdaa05ac26ce9749628e..654ae679c04f0b7d5f7eab54966addf636601f1e 100644 (file)
@@ -5,6 +5,7 @@
     "project": "org.sonar.Sonar",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "creationDate": "2014-01-22T19:10:03+0100",
     "fCreationDate": "Jan 22, 2014 10:03 AM",
     "transitions": [],
index 49f7db8f8c06bab843c4ec8b40fbdac2d571754a..dead025099c942e08fef432e17a6707f552b4f54 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "actionPlan" : "AP-ABCD",
     "actionPlanName" : "Version 4.2",
     "creationDate": "2014-01-22T19:10:03+0100",
index 011a92460cba11474dcfdccc6fb756ce1e8c0eff..14ceb5051cb4b332570381322bc8c48dee3b9333 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "status": "OPEN",
     "creationDate": "2014-01-22T19:10:03+0100",
     "fCreationDate": "Jan 22, 2014 10:03 AM",
index 1b75cbc5b7cd876cbde2ec848859de9b6ddd0125..0eed8b5cfcf1c5dd855129f9805d5bb59c2099cc 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "status": "OPEN",
     "creationDate": "2014-01-22T19:10:03+0100",
     "fCreationDate": "Jan 22, 2014 10:03 AM",
index 011a92460cba11474dcfdccc6fb756ce1e8c0eff..14ceb5051cb4b332570381322bc8c48dee3b9333 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "status": "OPEN",
     "creationDate": "2014-01-22T19:10:03+0100",
     "fCreationDate": "Jan 22, 2014 10:03 AM",
index 35bc7c3ef599e3051d43ba6bf423f2fc59b5ce5c..41349ce3d45f183a44dd56e3f40d0b53ee099512 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "creationDate": "2014-01-22T19:10:03+0100",
     "fCreationDate": "Jan 22, 2014 10:03 AM",
     "transitions": [],
index 373ad27273ca0078130d890e455357db7b154b22..41f351d840a78f50817cdbfdc0053165f0532d41 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "characteristic": "Maintainability",
     "subCharacteristic": "Readability",
     "creationDate": "2014-01-22T19:10:03+0100",
index 1e863053a9bbeb65064655ef806089f4e4884ff4..1e3a73b1c31b06922f24bfd1e0633dab06d1f5ff 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "creationDate": "2014-01-22T19:10:03+0100",
     "fCreationDate": "Jan 22, 2014 10:03 AM",
     "transitions": [],
index 67db98ec7c1e08d6ebcb5802b5f1b66905fb34e1..e08fdd0f33c67fdc756066a845b44d771a7d784e 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "creationDate": "2014-01-22T19:10:03+0100",
     "fCreationDate": "Jan 22, 2014 10:03 AM",
     "updateDate": "2014-01-23T19:10:03+0100",
index 9e2ce2a3daad4af9204ace84d97aefbbc61385e3..60e5aeb58bb4135f855ade3b5bf95bc6c95e205c 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "status": "OPEN",
     "creationDate": "2014-01-22T19:10:03+0100",
     "fCreationDate": "Jan 22, 2014 10:03 AM",
index f938630cfaa401b6d8bb5c4ffcc0afc982d17867..792e26128faa4ccd15a0ce222328a7510f95ef2e 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "debt": "2 hours 1 minutes",
     "creationDate": "2014-01-22T19:10:03+0100",
     "fCreationDate": "Jan 22, 2014 10:03 AM",
index d7646909a37d0896ab4a74ba3b829b513cb95a03..2b0bda3f4d35acde7b5c964bc6a41146b44ce897 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "status": "RESOLVED",
     "resolution": "FIXED",
     "creationDate": "2014-01-22T19:10:03+0100",
index f26e887d9d65a93d202f1d77cba093dd6ca2c711..f7c249e1ed526d1955cb678ceb7a1185ac642140 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "assignee": "john",
     "assigneeName": "John",
     "reporter": "steven",
index 4adcdc4d5336d60e2a4ebe6775502807dfad3092..93a38a2da05133bae7a46dd5dbee1770df4c0911 100644 (file)
@@ -8,6 +8,7 @@
     "projectLongName": "SonarQube",
     "rule": "squid:AvoidCycle",
     "ruleName": "Avoid cycle",
+    "message": "Fix it",
     "assignee": "john",
     "assigneeName": "John",
     "status": "OPEN",