From 5084cb4461d67d2408932e3558895fa67e762625 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Tue, 22 Aug 2023 12:29:58 -0700 Subject: [PATCH 1/3] KAFKA-15392: Prevent shadowing RestServer shutdown exceptions Signed-off-by: Greg Harris --- .../kafka/connect/runtime/rest/RestServer.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java index 8cd3583fbd7c3..1adb0c5a79407 100644 --- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java +++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java @@ -348,6 +348,13 @@ public void stop() { log.info("Stopping REST server"); try { + for (Handler handler : handlers.getHandlers()) { + try { + handler.stop(); + } catch (Exception e) { + log.warn("Error while stopping " + handler, e); + } + } for (ConnectRestExtension connectRestExtension : connectRestExtensions) { try { connectRestExtension.close(); @@ -358,8 +365,13 @@ public void stop() { jettyServer.stop(); jettyServer.join(); } catch (Exception e) { - jettyServer.destroy(); throw new ConnectException("Unable to stop REST server", e); + } finally { + try { + jettyServer.destroy(); + } catch (Exception e) { + log.error("Unable to destroy REST server", e); + } } log.info("REST server stopped"); From c6974fdaab31385a63b1aebe4a4270e5d1bd11a4 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Wed, 23 Aug 2023 13:44:35 -0700 Subject: [PATCH 2/3] fixup: RestServer#stop should be safe to call when already stopped or destroyed. Signed-off-by: Greg Harris --- .../kafka/connect/runtime/rest/RestServer.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java index 1adb0c5a79407..96e0776016603 100644 --- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java +++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java @@ -348,11 +348,13 @@ public void stop() { log.info("Stopping REST server"); try { - for (Handler handler : handlers.getHandlers()) { - try { - handler.stop(); - } catch (Exception e) { - log.warn("Error while stopping " + handler, e); + if (handlers.isRunning()) { + for (Handler handler : handlers.getHandlers()) { + try { + handler.stop(); + } catch (Exception e) { + log.warn("Error while stopping " + handler, e); + } } } for (ConnectRestExtension connectRestExtension : connectRestExtensions) { From 9a222bdaa394e3476646077333e9e2267ab82667 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Mon, 28 Aug 2023 10:11:32 -0700 Subject: [PATCH 3/3] fixup: use closeQuietly Signed-off-by: Greg Harris --- .../org/apache/kafka/connect/runtime/rest/RestServer.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java index 96e0776016603..6013830160053 100644 --- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java +++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/RestServer.java @@ -350,10 +350,8 @@ public void stop() { try { if (handlers.isRunning()) { for (Handler handler : handlers.getHandlers()) { - try { - handler.stop(); - } catch (Exception e) { - log.warn("Error while stopping " + handler, e); + if (handler != null) { + Utils.closeQuietly(handler::stop, handler.toString()); } } }