From 4dc06677768618c5b2b368ed28c086072e59a7a5 Mon Sep 17 00:00:00 2001 From: Pranav-b-7 Date: Sat, 23 Mar 2024 16:32:00 +0530 Subject: [PATCH] fix(mine): handle exceptions when error response body is null in RegisterCanaryTask Before this change the RetrofitError catch block would throw a NullPointerException when error response body is null at line no: https://github.com/spinnaker/orca/blob/613427f41bb16461a7ee8bb0f31212b438d75458/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/RegisterCanaryTask.groovy#L70 Here is the exact stack trace : java.lang.NullPointerException: Cannot set property 'status' on null object at org.codehaus.groovy.runtime.NullObject.setProperty(NullObject.java:80) at org.codehaus.groovy.runtime.InvokerHelper.setProperty(InvokerHelper.java:213) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty(ScriptBytecodeAdapter.java:496) at com.netflix.spinnaker.orca.mine.tasks.RegisterCanaryTask.execute(RegisterCanaryTask.groovy:70) --- .../spinnaker/orca/mine/tasks/RegisterCanaryTask.groovy | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/RegisterCanaryTask.groovy b/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/RegisterCanaryTask.groovy index ac56935e2e..41510858cd 100644 --- a/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/RegisterCanaryTask.groovy +++ b/orca-mine/src/main/groovy/com/netflix/spinnaker/orca/mine/tasks/RegisterCanaryTask.groovy @@ -62,7 +62,8 @@ class RegisterCanaryTask implements Task { } catch (RetrofitError re) { def response = [:] try { - response = re.getBodyAs(Map) as Map + def responseBody = re.getBodyAs(Map) as Map + response = responseBody!=null ? responseBody : response } catch (Exception e) { response.error = e.message }