This is an automated email from the ASF dual-hosted git repository. tabish pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-protonj2.git
The following commit(s) were added to refs/heads/main by this push: new a35e8ccc PROTON-2744 Ensure the test peer client shuts down its event loop a35e8ccc is described below commit a35e8cccdaed41a2cd0efb296f58990741d71d77 Author: Timothy Bish <tabish...@gmail.com> AuthorDate: Tue Jun 20 18:01:14 2023 -0400 PROTON-2744 Ensure the test peer client shuts down its event loop The event loops created for the client in the test peer should be closed immediately on channel close. --- .../protonj2/test/driver/netty/netty4/Netty4Client.java | 13 +++++++++++++ .../protonj2/test/driver/netty/netty5/Netty5Client.java | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/netty/netty4/Netty4Client.java b/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/netty/netty4/Netty4Client.java index 1db99dc2..2f2eddca 100644 --- a/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/netty/netty4/Netty4Client.java +++ b/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/netty/netty4/Netty4Client.java @@ -80,6 +80,7 @@ public final class Netty4Client implements NettyClient { private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private static final String AMQP_SUB_PROTOCOL = "amqp"; + private static final int SHUTDOWN_TIMEOUT = 50; private Netty4EventLoop eventLoop; private Bootstrap bootstrap; @@ -122,6 +123,18 @@ public final class Netty4Client implements NettyClient { LOG.debug("Close of channel interrupted while awaiting result"); } } + + if (group != null && !group.isShutdown()) { + group.shutdownGracefully(0, SHUTDOWN_TIMEOUT, TimeUnit.MILLISECONDS); + try { + if (!group.awaitTermination(2 * SHUTDOWN_TIMEOUT, TimeUnit.MILLISECONDS)) { + LOG.trace("Connection IO Event Loop shutdown failed to complete in allotted time"); + } + } catch (InterruptedException e) { + Thread.interrupted(); + LOG.debug("Shutdown of netty event loop interrupted while awaiting result"); + } + } } } diff --git a/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/netty/netty5/Netty5Client.java b/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/netty/netty5/Netty5Client.java index bc8a0925..a9d3e16a 100644 --- a/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/netty/netty5/Netty5Client.java +++ b/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/netty/netty5/Netty5Client.java @@ -79,6 +79,7 @@ public final class Netty5Client implements NettyClient { private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private static final String AMQP_SUB_PROTOCOL = "amqp"; + private static final int SHUTDOWN_TIMEOUT = 50; private Netty5EventLoop eventLoop; private Bootstrap bootstrap; @@ -121,6 +122,18 @@ public final class Netty5Client implements NettyClient { LOG.debug("Close of channel interrupted while awaiting result"); } } + + if (group != null && !group.isShutdown()) { + group.shutdownGracefully(0, SHUTDOWN_TIMEOUT, TimeUnit.MILLISECONDS); + try { + if (!group.awaitTermination(2 * SHUTDOWN_TIMEOUT, TimeUnit.MILLISECONDS)) { + LOG.trace("Connection IO Event Loop shutdown failed to complete in allotted time"); + } + } catch (InterruptedException e) { + Thread.interrupted(); + LOG.debug("Shutdown of netty event loop interrupted while awaiting result"); + } + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org