From: Julien Lancelot Date: Mon, 3 Feb 2014 09:37:11 +0000 (+0100) Subject: Fix quality flaws X-Git-Tag: 4.2~302 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=b56d6492b4e29420a287761608648f478345fbfa;p=sonarqube.git Fix quality flaws --- diff --git a/sonar-server/src/main/java/org/sonar/server/exceptions/BadRequestException.java b/sonar-server/src/main/java/org/sonar/server/exceptions/BadRequestException.java index 424aa57408c..4b6bcc485ba 100644 --- a/sonar-server/src/main/java/org/sonar/server/exceptions/BadRequestException.java +++ b/sonar-server/src/main/java/org/sonar/server/exceptions/BadRequestException.java @@ -23,6 +23,7 @@ import org.apache.commons.lang.builder.ReflectionToStringBuilder; import javax.annotation.CheckForNull; import javax.annotation.Nullable; + import java.util.Arrays; import java.util.List; @@ -41,7 +42,7 @@ public class BadRequestException extends ServerException { super(BAD_REQUEST, message); } - public BadRequestException(String message, List errors) { + public BadRequestException(@Nullable String message, List errors) { super(BAD_REQUEST, message); this.errors = errors; } diff --git a/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java b/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java index 46e1c997b70..4bd8a1f7979 100644 --- a/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java +++ b/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java @@ -47,6 +47,7 @@ import org.sonar.server.user.UserSession; import javax.annotation.CheckForNull; import javax.annotation.Nullable; + import java.util.Arrays; import java.util.Date; import java.util.List; @@ -239,8 +240,8 @@ public class IssueShowWsHandler implements RequestHandler { } private void addUserWithLabel(IssueQueryResult result, @Nullable String value, String field, JsonWriter json) { - User user = result.user(value); if (value != null) { + User user = result.user(value); json .prop(field, value) .prop(field + "Name", user != null ? user.name() : null); diff --git a/sonar-server/src/main/java/org/sonar/server/source/DeprecatedSourceDecorator.java b/sonar-server/src/main/java/org/sonar/server/source/DeprecatedSourceDecorator.java index 78dd20a3773..4878c158493 100644 --- a/sonar-server/src/main/java/org/sonar/server/source/DeprecatedSourceDecorator.java +++ b/sonar-server/src/main/java/org/sonar/server/source/DeprecatedSourceDecorator.java @@ -32,6 +32,8 @@ import org.sonar.server.exceptions.NotFoundException; import javax.annotation.CheckForNull; import javax.annotation.Nullable; + +import java.util.Collections; import java.util.List; import static com.google.common.collect.Lists.newArrayList; @@ -70,7 +72,7 @@ public class DeprecatedSourceDecorator implements ServerComponent { if (source != null) { return splitSourceByLine(source, component.getLanguage(), from, to); } else { - return null; + return Collections.emptyList(); } } finally { MyBatis.closeQuietly(session); diff --git a/sonar-server/src/main/java/org/sonar/server/source/SourceService.java b/sonar-server/src/main/java/org/sonar/server/source/SourceService.java index 3d04cb4fa99..8c742b0f286 100644 --- a/sonar-server/src/main/java/org/sonar/server/source/SourceService.java +++ b/sonar-server/src/main/java/org/sonar/server/source/SourceService.java @@ -69,7 +69,7 @@ public class SourceService implements ServerComponent { if (decoratedSource != null) { return decoratedSource; } else { - return deprecatedSourceDecorator.getSourceAsHtml(componentKey, from, to); + return deprecatedSourceDecorator.getSourceAsHtml(componentKey, from, to); } } diff --git a/sonar-server/src/main/java/org/sonar/server/source/ws/SourcesShowWsHandler.java b/sonar-server/src/main/java/org/sonar/server/source/ws/SourcesShowWsHandler.java index 7878a48bad6..96611c2e414 100644 --- a/sonar-server/src/main/java/org/sonar/server/source/ws/SourcesShowWsHandler.java +++ b/sonar-server/src/main/java/org/sonar/server/source/ws/SourcesShowWsHandler.java @@ -48,7 +48,7 @@ public class SourcesShowWsHandler implements RequestHandler { Integer toParam = request.intParam("to"); int from = (fromParam != null && fromParam > 0) ? fromParam : 1; List sourceHtml = sourceService.getSourcesByComponent(componentKey, from, toParam); - if (sourceHtml == null) { + if (sourceHtml.isEmpty()) { throw new NotFoundException("Component : " + componentKey + " has no source."); } @@ -89,14 +89,12 @@ public class SourcesShowWsHandler implements RequestHandler { String[] dateWithLine = splitColumn(dates.get(i)); String date = dateWithLine[1]; String formattedDate = DateUtils.formatDate(DateUtils.parseDateTime(date)); - if (line >= from && line <= to) { - if (!isSameCommit(date, previousDate, author, previousAuthor) || !scmDataAdded) { - json.name(Integer.toString(line)).beginArray(); - json.value(author); - json.value(formattedDate); - json.endArray(); - scmDataAdded = true; - } + if (line >= from && line <= to && (!isSameCommit(date, previousDate, author, previousAuthor) || !scmDataAdded)) { + json.name(Integer.toString(line)).beginArray(); + json.value(author); + json.value(formattedDate); + json.endArray(); + scmDataAdded = true; } previousAuthor = author; previousDate = date; @@ -105,7 +103,7 @@ public class SourcesShowWsHandler implements RequestHandler { } } - private boolean isSameCommit(String date, String previousDate, String author, String previousAuthor){ + private boolean isSameCommit(String date, String previousDate, String author, String previousAuthor) { return author.equals(previousAuthor) && date.equals(previousDate); } diff --git a/sonar-server/src/test/java/org/sonar/server/source/DeprecatedSourceDecoratorTest.java b/sonar-server/src/test/java/org/sonar/server/source/DeprecatedSourceDecoratorTest.java index 9811614e280..0c26283d75a 100644 --- a/sonar-server/src/test/java/org/sonar/server/source/DeprecatedSourceDecoratorTest.java +++ b/sonar-server/src/test/java/org/sonar/server/source/DeprecatedSourceDecoratorTest.java @@ -82,12 +82,12 @@ public class DeprecatedSourceDecoratorTest { } @Test - public void return_null_if_no_source_code_on_component() throws Exception { + public void return_empty_list_if_no_source_code_on_component() throws Exception { String componentKey = "org.sonar.sample:Sample"; when(resourceDao.getResource(any(ResourceQuery.class), eq(session))).thenReturn(new ResourceDto().setKey(componentKey).setLanguage("java")); when(snapshotSourceDao.selectSnapshotSourceByComponentKey(componentKey, session)).thenReturn(null); - assertThat(sourceDecorator.getSourceAsHtml(componentKey)).isNull(); + assertThat(sourceDecorator.getSourceAsHtml(componentKey)).isEmpty(); } @Test diff --git a/sonar-server/src/test/java/org/sonar/server/source/ws/SourcesShowWsHandlerTest.java b/sonar-server/src/test/java/org/sonar/server/source/ws/SourcesShowWsHandlerTest.java index 64ff710c0bf..5931679e35d 100644 --- a/sonar-server/src/test/java/org/sonar/server/source/ws/SourcesShowWsHandlerTest.java +++ b/sonar-server/src/test/java/org/sonar/server/source/ws/SourcesShowWsHandlerTest.java @@ -29,6 +29,8 @@ import org.sonar.api.server.ws.WsTester; import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.source.SourceService; +import java.util.Collections; + import static com.google.common.collect.Lists.newArrayList; import static org.fest.assertions.Assertions.assertThat; import static org.fest.assertions.Fail.fail; @@ -68,7 +70,7 @@ public class SourcesShowWsHandlerTest { @Test public void fail_to_show_source_if_no_source_found() throws Exception { String componentKey = "org.apache.struts:struts:Dispatcher"; - when(sourceService.getSourcesByComponent(anyString(), anyInt(), anyInt())).thenReturn(null); + when(sourceService.getSourcesByComponent(anyString(), anyInt(), anyInt())).thenReturn(Collections.emptyList()); try { WsTester.TestRequest request = tester.newRequest("show").setParam("key", componentKey); @@ -94,6 +96,11 @@ public class SourcesShowWsHandlerTest { @Test public void show_source_always_should_not_begin_with_from_0() throws Exception { String componentKey = "org.apache.struts:struts:Dispatcher"; + when(sourceService.getSourcesByComponent(componentKey, 1, 5)).thenReturn(newArrayList( + " */", + "", + "public class HelloWorld {" + )); WsTester.TestRequest request = tester.newRequest("show").setParam("key", componentKey).setParam("from", "0").setParam("to", "5"); request.execute(); verify(sourceService).getSourcesByComponent(componentKey, 1, 5);