Repository: maven-surefire Updated Branches: refs/heads/master 7f2c1fb11 -> bad7cb910
SUREFIRE-1023 fix potential StringIndexOutOfBoundsException in SurefireReportGenerator when coming across unusual failure stacktraces Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/bad7cb91 Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/bad7cb91 Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/bad7cb91 Branch: refs/heads/master Commit: bad7cb910c0164dc9ffb4700dabbd8e8f4b61023 Parents: 7f2c1fb Author: Andreas Gudian <agud...@apache.org> Authored: Thu Sep 25 21:03:57 2014 +0200 Committer: Andreas Gudian <agud...@apache.org> Committed: Thu Sep 25 21:03:57 2014 +0200 ---------------------------------------------------------------------- .../surefire/report/SurefireReportGenerator.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/bad7cb91/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java ---------------------------------------------------------------------- diff --git a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java index 5e8b842..944832a 100644 --- a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java +++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java @@ -666,19 +666,24 @@ public class SurefireReportGenerator { StringTokenizer tokenizer = new StringTokenizer( source ); - String lineNo = ""; - while ( tokenizer.hasMoreTokens() ) { String token = tokenizer.nextToken(); if ( token.startsWith( className ) ) { int idx = token.indexOf( ":" ); - lineNo = token.substring( idx + 1, token.indexOf( ")" ) ); - break; + if ( idx >= 0 ) + { + int closeIdx = token.lastIndexOf( ")" ); + + if ( closeIdx > idx + 1 ) + { + return token.substring( idx + 1, closeIdx ); + } + } } } - return lineNo; + return ""; } private void constructHotLinks( Sink sink, ResourceBundle bundle )