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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]