From b627b435fe134e0a3b0c64c400b581359717d071 Mon Sep 17 00:00:00 2001 From: "TAKAHASHI,Toru" Date: Sun, 7 Jun 2020 04:25:58 +0900 Subject: [PATCH] Fix null logger in remote --- .../plugins/stepcounter/StepCounter.java | 10 ++++----- .../stepcounter/parser/StepCounterParser.java | 21 ++++++++++--------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/jenkinsci/plugins/stepcounter/StepCounter.java b/src/main/java/org/jenkinsci/plugins/stepcounter/StepCounter.java index 17eac27..6237a57 100644 --- a/src/main/java/org/jenkinsci/plugins/stepcounter/StepCounter.java +++ b/src/main/java/org/jenkinsci/plugins/stepcounter/StepCounter.java @@ -94,7 +94,7 @@ public boolean perform(Run run, Launcher launcher, FilePath workspace, Tas projectAction.setResult(resultAction); boolean result = false; try { - result = _perform(resultAction, workspace, vars, listener.getLogger()); + result = _perform(resultAction, workspace, vars, listener); } catch (IOException e) { run.setResult(Result.FAILURE); listener.error(e.getMessage()); @@ -115,7 +115,7 @@ public boolean perform(AbstractBuild build, Launcher launcher, BuildListen try { EnvVars vars = build.getEnvironment(listener); FilePath workspace = build.getWorkspace(); - result = _perform(resultAction, workspace, vars, listener.getLogger()); + result = _perform(resultAction, workspace, vars, listener); } catch (IOException e) { build.setResult(Result.FAILURE); listener.error(e.getMessage()); @@ -126,14 +126,14 @@ public boolean perform(AbstractBuild build, Launcher launcher, BuildListen return result; } - public boolean _perform(StepCounterResultAction resultAction, FilePath workspace, EnvVars vars, PrintStream logger) + public boolean _perform(StepCounterResultAction resultAction, FilePath workspace, EnvVars vars, TaskListener listener) throws IOException, InterruptedException { List parsers = new ArrayList(); if (getSettings() == null) { return false; } - + PrintStream logger = listener.getLogger(); for (StepCounterSetting setting : getSettings()) { String encoding = vars.expand(setting.getEncoding()); String category = vars.expand(setting.getKey()); @@ -143,7 +143,7 @@ public boolean _perform(StepCounterResultAction resultAction, FilePath workspace logger.println("[stepcounter] includes [" + includes + "]"); logger.println("[stepcounter] excludes [" + excludes + "]"); logger.println("[stepcounter] encoding [" + encoding + "]"); - StepCounterParser finder = new StepCounterParser(includes, excludes, encoding, logger, category, + StepCounterParser finder = new StepCounterParser(includes, excludes, encoding, listener, category, DESCRIPTOR.getCountFormats()); StepCounterResult result = workspace.act(finder); resultAction.putStepsMap(category, result); diff --git a/src/main/java/org/jenkinsci/plugins/stepcounter/parser/StepCounterParser.java b/src/main/java/org/jenkinsci/plugins/stepcounter/parser/StepCounterParser.java index e201928..d495050 100644 --- a/src/main/java/org/jenkinsci/plugins/stepcounter/parser/StepCounterParser.java +++ b/src/main/java/org/jenkinsci/plugins/stepcounter/parser/StepCounterParser.java @@ -15,6 +15,7 @@ import org.jenkinsci.remoting.RoleChecker; import hudson.FilePath.FileCallable; +import hudson.model.TaskListener; import hudson.remoting.VirtualChannel; import jp.sf.amateras.stepcounter.CountResult; import jp.sf.amateras.stepcounter.StepCounter; @@ -29,7 +30,7 @@ public class StepCounterParser implements FileCallable { private String encoding; - transient private PrintStream logger; + private TaskListener listener; private List _results = new ArrayList(); @@ -38,11 +39,11 @@ public class StepCounterParser implements FileCallable { private List setting; public StepCounterParser(final String filePattern, final String filePatternExclude, final String encoding, - final PrintStream logger, String category, List setting) { + final TaskListener listener, String category, List setting) { this.filePattern = filePattern; this.filePatternExclude = filePatternExclude; this.encoding = encoding; - this.logger = logger; + this.listener = listener; this.category = category; this.setting = setting; } @@ -53,27 +54,27 @@ public StepCounterResult invoke(final File workspace, final VirtualChannel chann String[] fileNames = new FileFinder(filePattern, filePatternExclude).find(workspace); if (fileNames.length == 0) { - logger.println("[stepcounter] " + Messages.filenotfound()); + listener.getLogger().println("[stepcounter] " + Messages.filenotfound()); } else { - logger.println( + listener.getLogger().println( "[stepcounter] Parsing " + fileNames.length + " files in " + workspace.getAbsolutePath()); parseFiles(workspace, fileNames, result); } } catch (InterruptedException exception) { - logger.println("Parsing has been canceled."); + listener.getLogger().println("Parsing has been canceled."); } catch (RuntimeException e) { e.printStackTrace(); throw e; } - logger.println("[stepcounter] Parse completed:" + result.getFileSteps().size() + " files"); + listener.getLogger().println("[stepcounter] Parse completed:" + result.getFileSteps().size() + " files"); long total = 0; for (Object oStep : result.getFileSteps()) { FileStep step = (FileStep) oStep; total += step.getRuns(); } - logger.println("[stepcounter] total[" + total + "]"); + listener.getLogger().println("[stepcounter] total[" + total + "]"); return result; } @@ -113,7 +114,7 @@ private void parseFiles(final File workspace, final String[] fileNames, final St } private void parseFile(final File file, final StepCounterResult result, final String rootPath) throws IOException { - logger.println("[stepcounter] " + file.getAbsolutePath()); + listener.getLogger().println("[stepcounter] " + file.getAbsolutePath()); StepCounter counter = OriginalStepCounterFactory.getCounter(file, this.setting); if (counter != null) { @@ -129,7 +130,7 @@ private void parseFile(final File file, final StepCounterResult result, final St OriginalCountResult originalCountResult = new OriginalCountResult(countResult, relativePath); _results.add(originalCountResult); } else { - logger.println("[stepcounter] no applicable file type [" + file.getName() + "]"); + listener.getLogger().println("[stepcounter] no applicable file type [" + file.getName() + "]"); } }