From 17ac07599efba6923dd2ed54c91247114321299b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6=C3=9Fler?= Date: Wed, 1 Aug 2018 14:22:44 +0200 Subject: [PATCH] Fixed out of bounds exception INFO: java.lang.ArrayIndexOutOfBoundsException: -1 INFO: at java.util.ArrayList.elementData(Unknown Source) INFO: at java.util.ArrayList.get(Unknown Source) INFO: at org.sonar.plugins.scm.mercurial.MercurialBlameCommand.blame(MercurialBlameCommand.java:104) INFO: at org.sonar.plugins.scm.mercurial.MercurialBlameCommand.access$000(MercurialBlameCommand.java:42) INFO: at org.sonar.plugins.scm.mercurial.MercurialBlameCommand$1.call(MercurialBlameCommand.java:83) INFO: at org.sonar.plugins.scm.mercurial.MercurialBlameCommand$1.call(MercurialBlameCommand.java:80) This happens if blame fails (e.g.) file not under version control and the source file has only one line of code --- .../org/sonar/plugins/scm/mercurial/MercurialBlameCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sonar-scm-mercurial-plugin/src/main/java/org/sonar/plugins/scm/mercurial/MercurialBlameCommand.java b/sonar-scm-mercurial-plugin/src/main/java/org/sonar/plugins/scm/mercurial/MercurialBlameCommand.java index e2d051d..47d39f9 100644 --- a/sonar-scm-mercurial-plugin/src/main/java/org/sonar/plugins/scm/mercurial/MercurialBlameCommand.java +++ b/sonar-scm-mercurial-plugin/src/main/java/org/sonar/plugins/scm/mercurial/MercurialBlameCommand.java @@ -99,7 +99,7 @@ private void blame(FileSystem fs, InputFile inputFile, BlameOutput output) { LOG.debug("The mercurial blame command [" + cl.toString() + "] failed: " + stderr.getOutput()); } List lines = consumer.getLines(); - if (lines.size() == inputFile.lines() - 1) { + if (lines.size() > 0 && lines.size() == inputFile.lines() - 1) { // SONARPLUGINS-3097 Mercurial do not report blame on last empty line lines.add(lines.get(lines.size() - 1)); }