From b21e933592a4893d1341a251a96b546e1b0ce3a1 Mon Sep 17 00:00:00 2001 From: Benedict Jin Date: Sat, 17 Nov 2018 07:28:47 +0800 Subject: [PATCH] * MINOR: Catching null pointer exception for empty leader URL when assignment is null (#4798) Catch null pointer exception for empty leader URL when assignment is null. Reviewers: Randall Hauch , Konstantine Karantasis , Guozhang Wang --- .../connect/runtime/distributed/DistributedHerder.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/DistributedHerder.java b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/DistributedHerder.java index f2009dbac1e..02137302e16 100644 --- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/DistributedHerder.java +++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/DistributedHerder.java @@ -1031,7 +1031,14 @@ public class DistributedHerder extends AbstractHerder implements Runnable { @Override public void run() { try { - String reconfigUrl = RestServer.urlJoin(leaderUrl(), "/connectors/" + connName + "/tasks"); + String leaderUrl = leaderUrl(); + if (leaderUrl == null || leaderUrl.trim().isEmpty()) { + cb.onCompletion(new ConnectException("Request to leader to " + + "reconfigure connector tasks failed " + + "because the URL of the leader's REST interface is empty!"), null); + return; + } + String reconfigUrl = RestServer.urlJoin(leaderUrl, "/connectors/" + connName + "/tasks"); RestClient.httpRequest(reconfigUrl, "POST", rawTaskProps, null, config); cb.onCompletion(null, null); } catch (ConnectException e) {