]> source.dussan.org Git - sonarqube.git/commitdiff
fix one line shift while auto-assigning issues in CE 250/head
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Thu, 23 Apr 2015 08:20:43 +0000 (10:20 +0200)
committerTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Thu, 23 Apr 2015 09:53:41 +0000 (11:53 +0200)
server/sonar-server/src/main/java/org/sonar/server/computation/issue/SourceLinesCache.java
server/sonar-server/src/test/java/org/sonar/server/computation/issue/SourceLinesCacheTest.java

index 9af0128ce8e3bed67e9c9146642e7e22d43381ab..7f6fc739da515b1a48a6f9085ef29046a04f0678 100644 (file)
@@ -29,7 +29,6 @@ import org.sonar.server.source.index.SourceLineIndex;
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
-
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -78,19 +77,18 @@ public class SourceLinesCache {
 
   /**
    * Last committer of the line, can be null.
-   * @param lineIndex starts at 0
    */
   @CheckForNull
-  public String lineAuthor(@Nullable Integer lineIndex) {
+  public String lineAuthor(@Nullable Integer lineNumber) {
     loadIfNeeded();
 
-    if (lineIndex == null) {
+    if (lineNumber == null) {
       // issue on file, approximately estimate that author is the last committer on the file
       return lastCommitAuthor;
     }
     String author = null;
-    if (lineIndex < scm.getChangesetIndexByLineCount()) {
-      BatchReport.Changesets.Changeset changeset = scm.getChangeset(scm.getChangesetIndexByLine(lineIndex));
+    if (lineNumber <= scm.getChangesetIndexByLineCount()) {
+      BatchReport.Changesets.Changeset changeset = scm.getChangeset(scm.getChangesetIndexByLine(lineNumber-1));
       author = changeset.hasAuthor() ? changeset.getAuthor() : null;
     }
 
index 5a9403fd765fa2f9cfbf84ae7b8c8ebe799df84b..c5635716af4693d7978a63e912ec00ba2eb19e2d 100644 (file)
@@ -72,11 +72,11 @@ public class SourceLinesCacheTest {
 
     sut.init("ANY_UUID", 123_456_789, new BatchReportReader(dir));
 
-    assertThat(sut.lineAuthor(0)).isEqualTo("charb");
     assertThat(sut.lineAuthor(1)).isEqualTo("charb");
-    assertThat(sut.lineAuthor(2)).isEqualTo("wolinski");
-    // compute last author
+    assertThat(sut.lineAuthor(2)).isEqualTo("charb");
     assertThat(sut.lineAuthor(3)).isEqualTo("wolinski");
+    // compute last author
+    assertThat(sut.lineAuthor(4)).isEqualTo("wolinski");
     assertThat(sut.lineAuthor(null)).isEqualTo("wolinski");
   }
 
@@ -92,12 +92,12 @@ public class SourceLinesCacheTest {
 
     sut.init("DEFAULT_UUID", 123, new BatchReportReader(dir));
 
-    assertThat(sut.lineAuthor(0)).isEqualTo("cabu");
     assertThat(sut.lineAuthor(1)).isEqualTo("cabu");
     assertThat(sut.lineAuthor(2)).isEqualTo("cabu");
-    assertThat(sut.lineAuthor(3)).isEqualTo("wolinski");
-    assertThat(sut.lineAuthor(4)).isEqualTo("cabu");
-    assertThat(sut.lineAuthor(5)).isEqualTo("wolinski");
+    assertThat(sut.lineAuthor(3)).isEqualTo("cabu");
+    assertThat(sut.lineAuthor(4)).isEqualTo("wolinski");
+    assertThat(sut.lineAuthor(5)).isEqualTo("cabu");
+    assertThat(sut.lineAuthor(6)).isEqualTo("wolinski");
   }
 
   @Test(expected = IllegalStateException.class)
@@ -113,12 +113,12 @@ public class SourceLinesCacheTest {
       .setDate(date);
   }
 
-  private SourceLineDoc newSourceLine(String author, String revision, long date, int line) {
+  private SourceLineDoc newSourceLine(String author, String revision, long date, int lineNumber) {
     return new SourceLineDoc()
       .setScmAuthor(author)
       .setScmRevision(revision)
       .setScmDate(new Date(date))
-      .setLine(line)
+      .setLine(lineNumber)
       .setProjectUuid("PROJECT_UUID")
       .setFileUuid("DEFAULT_UUID");
   }