From b75bf6f66ca72bc5bebcb4cc83b8365f8d8d27a7 Mon Sep 17 00:00:00 2001 From: mad8vad Date: Fri, 13 Jul 2018 11:43:47 +0500 Subject: [PATCH 1/2] quick fix for sh for z/OS --- .../org/jenkinsci/plugins/durabletask/BourneShellScript.java | 2 +- .../jenkinsci/plugins/durabletask/FileMonitoringTask.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java b/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java index 3c15d3c3..9c0e7075 100644 --- a/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java +++ b/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java @@ -118,7 +118,7 @@ public String getScript() { String defaultShell = jenkins.getInjector().getInstance(Shell.DescriptorImpl.class).getShellOrDefault(ws.getChannel()); s = "#!"+defaultShell+" -xe\n" + s; } - shf.write(s, "UTF-8"); + shf.write(s, "CP1047"); shf.chmod(0755); scriptPath = shf.getRemote(); diff --git a/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java b/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java index cbae4446..c4f92ab3 100644 --- a/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java +++ b/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java @@ -28,6 +28,7 @@ import hudson.EnvVars; import hudson.FilePath; import hudson.Launcher; +import hudson.Platform; import hudson.Util; import hudson.model.TaskListener; import hudson.remoting.Channel; @@ -154,7 +155,7 @@ private static class WriteLog extends MasterToSlaveFileCallable { // TODO is this efficient for large amounts of output? Would it be better to stream data, or return a byte[] from the callable? byte[] buf = new byte[(int) toRead]; raf.readFully(buf); - sink.write(buf); + sink.write(new String(buf, "CP1047").getBytes()); } finally { raf.close(); } @@ -172,7 +173,7 @@ static class StatusCheck extends MasterToSlaveFileCallable { public Integer invoke(File f, VirtualChannel channel) throws IOException, InterruptedException { if (f.exists() && f.length() > 0) { try { - String fileString = Files.readFirstLine(f, Charset.defaultCharset()); + String fileString = Files.readFirstLine(f, Charset.forName("CP1047")); if (fileString == null || fileString.isEmpty()) { return null; } else { From d288b9ab048d9a3d47b3ee922d7c6730b511d09f Mon Sep 17 00:00:00 2001 From: mad8vad Date: Fri, 13 Jul 2018 11:46:14 +0500 Subject: [PATCH 2/2] removed import --- .../org/jenkinsci/plugins/durabletask/FileMonitoringTask.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java b/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java index c4f92ab3..d5c77512 100644 --- a/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java +++ b/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java @@ -28,7 +28,6 @@ import hudson.EnvVars; import hudson.FilePath; import hudson.Launcher; -import hudson.Platform; import hudson.Util; import hudson.model.TaskListener; import hudson.remoting.Channel;