From ae56f8c96b4ec92f52da4425946c319307165497 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 22 Oct 2011 12:07:31 +0200 Subject: [PATCH] fix possible NullPointerException --- .../sonia/scm/repository/GitBlameViewer.java | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitBlameViewer.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitBlameViewer.java index 1d7f01c227..c6cf493433 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitBlameViewer.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitBlameViewer.java @@ -122,35 +122,39 @@ public class GitBlameViewer implements BlameViewer List blameLines = new ArrayList(); int total = gitBlameResult.getResultContents().size(); - - for (int i = 0; i < total; i++) + int i = 0; + + for (; i < total; i++) { - PersonIdent author = gitBlameResult.getSourceAuthor(i); - BlameLine blameLine = new BlameLine(); + RevCommit commit = gitBlameResult.getSourceCommit(i); + + if ( commit != null ) + { + PersonIdent author = gitBlameResult.getSourceAuthor(i); + BlameLine blameLine = new BlameLine(); - blameLine.setLineNumber(i + 1); - blameLine.setAuthor(new Person(author.getName(), - author.getEmailAddress())); + blameLine.setLineNumber(i + 1); + blameLine.setAuthor(new Person(author.getName(), + author.getEmailAddress())); - RevCommit commit = gitBlameResult.getSourceCommit(i); + blameLine.setDescription(commit.getShortMessage()); - blameLine.setDescription(commit.getShortMessage()); + long when = GitUtil.getCommitTime(commit); - long when = GitUtil.getCommitTime(commit); + blameLine.setWhen(when); - blameLine.setWhen(when); + String rev = commit.getId().getName(); - String rev = commit.getId().getName(); + blameLine.setRevision(rev); - blameLine.setRevision(rev); + String content = gitBlameResult.getResultContents().getString(i); - String content = gitBlameResult.getResultContents().getString(i); - - blameLine.setCode(content); - blameLines.add(blameLine); + blameLine.setCode(content); + blameLines.add(blameLine); + } } - blameResult = new sonia.scm.repository.BlameResult(total, blameLines); + blameResult = new sonia.scm.repository.BlameResult(i, blameLines); } catch (IOException ex) {