From 4a10dce84dc3831a21bd068629232dbcd79a5b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Reichenbach?= Date: Tue, 20 Feb 2018 18:29:57 +0100 Subject: [PATCH 1/5] fix null pointer exception in line 861 when the error stream is not present but was used to read from it --- .../RemoteBuildConfiguration.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java index fa62789e..6c65a455 100644 --- a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java +++ b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java @@ -856,6 +856,14 @@ public String getConsoleOutput(String urlString, String requestType, AbstractBui is = connection.getErrorStream(); } + // if the error stream is empty, which can happen we do not want to access it by handling it over to the BufferedReader in the next lines + try { + BufferedReader rd = new BufferedReader(new InputStreamReader(is)); + } catch (NullPointerException nullPointer) { + listener.getLogger().println("Remote Jenkins server returned empty response or invalid JSON - also the Error stream is not available. We just do nothing and can still proceed with the remote build."); + return null; + } + BufferedReader rd = new BufferedReader(new InputStreamReader(is)); String line; // String response = ""; From 2521958535edde3578292bd6796ec89c8339c71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Reichenbach?= Date: Tue, 20 Feb 2018 18:32:23 +0100 Subject: [PATCH 2/5] fix null pointer exception in line 861 when the error stream is not present but was used to read from it --- .../RemoteBuildConfiguration.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java index 6c65a455..d8f26e9f 100644 --- a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java +++ b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java @@ -856,15 +856,17 @@ public String getConsoleOutput(String urlString, String requestType, AbstractBui is = connection.getErrorStream(); } - // if the error stream is empty, which can happen we do not want to access it by handling it over to the BufferedReader in the next lines + // if the error stream is empty, which can happen, and we do not want to access it by handling it over to the BufferedReader in the next lines + // Nevertheless of scope we need to call the function twice as in try block defined members are not visible to outside try { BufferedReader rd = new BufferedReader(new InputStreamReader(is)); + rd.close(); } catch (NullPointerException nullPointer) { listener.getLogger().println("Remote Jenkins server returned empty response or invalid JSON - also the Error stream is not available. We just do nothing and can still proceed with the remote build."); return null; } - BufferedReader rd = new BufferedReader(new InputStreamReader(is)); + BufferedReader rd = new BufferedReader(new InputStreamReader(is)); String line; // String response = ""; StringBuilder response = new StringBuilder(); From a0d21eb7e6228012ffb7d21af275590a4010e134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Reichenbach?= Date: Tue, 20 Feb 2018 18:36:15 +0100 Subject: [PATCH 3/5] fix null pointer exception in line 861 when the error stream is not present but was used to read from it --- .../RemoteBuildConfiguration.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java index d8f26e9f..994450e0 100644 --- a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java +++ b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java @@ -859,14 +859,14 @@ public String getConsoleOutput(String urlString, String requestType, AbstractBui // if the error stream is empty, which can happen, and we do not want to access it by handling it over to the BufferedReader in the next lines // Nevertheless of scope we need to call the function twice as in try block defined members are not visible to outside try { - BufferedReader rd = new BufferedReader(new InputStreamReader(is)); - rd.close(); + BufferedReader rd = new BufferedReader(new InputStreamReader(is)); + rd.close(); } catch (NullPointerException nullPointer) { - listener.getLogger().println("Remote Jenkins server returned empty response or invalid JSON - also the Error stream is not available. We just do nothing and can still proceed with the remote build."); - return null; + listener.getLogger().println("Remote Jenkins server returned empty response or invalid JSON - also the Error stream is not available. We just do nothing and can still proceed with the remote build."); + return null; } - BufferedReader rd = new BufferedReader(new InputStreamReader(is)); + BufferedReader rd = new BufferedReader(new InputStreamReader(is)); String line; // String response = ""; StringBuilder response = new StringBuilder(); From 2fd41aceca73d2bc7c5a7950cce7c38a18ecd276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Reichenbach?= Date: Wed, 21 Feb 2018 13:44:47 +0100 Subject: [PATCH 4/5] fix null pointer exception in line 861 when the error stream is not present but was used to read from it --- .../RemoteBuildConfiguration.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java index 994450e0..a404febd 100644 --- a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java +++ b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java @@ -856,17 +856,15 @@ public String getConsoleOutput(String urlString, String requestType, AbstractBui is = connection.getErrorStream(); } - // if the error stream is empty, which can happen, and we do not want to access it by handling it over to the BufferedReader in the next lines - // Nevertheless of scope we need to call the function twice as in try block defined members are not visible to outside + BufferedReader rd = null; + try { - BufferedReader rd = new BufferedReader(new InputStreamReader(is)); - rd.close(); + rd = new BufferedReader(new InputStreamReader(is)); } catch (NullPointerException nullPointer) { listener.getLogger().println("Remote Jenkins server returned empty response or invalid JSON - also the Error stream is not available. We just do nothing and can still proceed with the remote build."); return null; } - BufferedReader rd = new BufferedReader(new InputStreamReader(is)); String line; // String response = ""; StringBuilder response = new StringBuilder(); From 7f00301606e610b297617dc151ea2a609e8e0461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Reichenbach?= Date: Wed, 21 Feb 2018 14:30:27 +0100 Subject: [PATCH 5/5] fix null pointer exception in line 861 when the error stream is not present but was used to read from it --- .../ParameterizedRemoteTrigger/RemoteBuildConfiguration.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java index a404febd..3a7fa0b9 100644 --- a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java +++ b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java @@ -861,8 +861,7 @@ public String getConsoleOutput(String urlString, String requestType, AbstractBui try { rd = new BufferedReader(new InputStreamReader(is)); } catch (NullPointerException nullPointer) { - listener.getLogger().println("Remote Jenkins server returned empty response or invalid JSON - also the Error stream is not available. We just do nothing and can still proceed with the remote build."); - return null; + throw new IOException(); } String line;