Skip to content
This repository has been archived by the owner on Apr 6, 2022. It is now read-only.

Commit

Permalink
[JENKINS-9158] Abort warnings parsing if user pressed cancel.
Browse files Browse the repository at this point in the history
  • Loading branch information
uhafner committed Aug 19, 2011
1 parent 317cd6f commit 8262443
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions src/main/java/hudson/plugins/warnings/WarningsPublisher.java
Expand Up @@ -229,8 +229,10 @@ public BuildResult perform(final AbstractBuild<?, ?> build, final PluginLogger l
throw new IOException("Error: No warning parsers defined.");
}

ParserResult project = parseConsoleLog(build, logger);
parseFiles(build, logger, project);
ParserResult project = parseFiles(build, logger);
returnIfCanceled();

parseConsoleLog(build, logger, project);

project = build.getWorkspace().act(new AnnotationsClassifier(project, getDefaultEncoding()));
for (FileAnnotation annotation : project.getAnnotations()) {
Expand All @@ -243,7 +245,13 @@ public BuildResult perform(final AbstractBuild<?, ?> build, final PluginLogger l
return result;
}

private void parseFiles(final AbstractBuild<?, ?> build, final PluginLogger logger,
private void returnIfCanceled() throws InterruptedException {
if (Thread.interrupted()) {
throw new InterruptedException("Canceling parsing since build has been aborted.");
}
}

private void parseConsoleLog(final AbstractBuild<?, ?> build, final PluginLogger logger,
final ParserResult project) throws IOException {
if (!getConsoleLogParsers().isEmpty()) {
logger.log("Parsing warnings in console log with parsers " + getConsoleLogParsers());
Expand All @@ -262,7 +270,7 @@ private void parseFiles(final AbstractBuild<?, ?> build, final PluginLogger logg
}
}

private ParserResult parseConsoleLog(final AbstractBuild<?, ?> build, final PluginLogger logger)
private ParserResult parseFiles(final AbstractBuild<?, ?> build, final PluginLogger logger)
throws IOException, InterruptedException {
ParserResult project = new ParserResult(build.getWorkspace());
for (ParserConfiguration configuration : getParserConfigurations()) {
Expand All @@ -275,6 +283,8 @@ private ParserResult parseConsoleLog(final AbstractBuild<?, ?> build, final Plug
ParserResult additionalProject = build.getWorkspace().act(parser);
logger.logLines(additionalProject.getLogMessages());
project.addProject(additionalProject);

returnIfCanceled();
}
return project;
}
Expand Down

0 comments on commit 8262443

Please sign in to comment.