DBZ-5159 Fix possible NPE when checking connector task state

This commit is contained in:
Chris Cranford 2022-05-23 11:15:16 -04:00 committed by Jakub Cechacek
parent 7eee39800f
commit b92dd83c44

View File

@ -23,6 +23,7 @@
import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.DockerImageName;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
@ -300,7 +301,12 @@ public Connector.State getConnectorTaskState(String connectorName, int taskNumbe
try (final ResponseBody responseBody = executeGETRequestSuccessfully(request).body()) { try (final ResponseBody responseBody = executeGETRequestSuccessfully(request).body()) {
if (null != responseBody) { if (null != responseBody) {
final ObjectNode parsedObject = (ObjectNode) MAPPER.readTree(responseBody.string()); final ObjectNode parsedObject = (ObjectNode) MAPPER.readTree(responseBody.string());
return Connector.State.valueOf(parsedObject.get("tasks").get(taskNumber).get("state").asText()); final JsonNode tasksNode = parsedObject.get("tasks").get(taskNumber);
// Task array can return null if the array is empty or the task number is not within bounds
if (tasksNode == null) {
return null;
}
return Connector.State.valueOf(tasksNode.get("state").asText());
} }
return null; return null;
} }