You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2019/11/05 16:26:59 UTC
[camel] 02/11: CAMEL-14137 Thread leak in camel-jetty component if
maxThreads or minThreads property is set
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 918d8d30e4bb1be04eb390279e18fb829e819e11
Author: Luigi De Masi <ld...@redhat.com>
AuthorDate: Mon Nov 4 23:30:23 2019 +0100
CAMEL-14137 Thread leak in camel-jetty component if maxThreads or minThreads property is set
---
.../component/jetty/JettyThreadPoolSizeTest.java | 38 ++++++++++------------
1 file changed, 17 insertions(+), 21 deletions(-)
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyThreadPoolSizeTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyThreadPoolSizeTest.java
index 27aae78..760b285 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyThreadPoolSizeTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyThreadPoolSizeTest.java
@@ -12,61 +12,57 @@ public class JettyThreadPoolSizeTest extends BaseJettyTest {
private static final Logger log = LoggerFactory.getLogger(JettyThreadPoolSizeTest.class);
-
- private JettyHttpComponent jettyComponent;
-
- private RouteBuilder builder;
-
@Test
public void threadPoolTest(){
-
- Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
- long initialJettyThreadNumber = threadSet.stream().filter(thread -> thread.getName().contains("CamelJettyServer")).count();
+ long initialJettyThreadNumber = countJettyThread();
log.info("initial Jetty thread number (expected 5): "+ initialJettyThreadNumber);
context.stop();
- Set<Thread> threadSetAfterStop = Thread.getAllStackTraces().keySet();
- long jettyThreadNumberAfterStop = threadSetAfterStop.stream().filter(thread -> thread.getName().contains("CamelJettyServer")).count();
+ long jettyThreadNumberAfterStop = countJettyThread();
log.info("Jetty thread number after stopping Camel Context: (expected 0): "+ jettyThreadNumberAfterStop);
-
- jettyComponent = (JettyHttpComponent)context.getComponent("jetty");
+ JettyHttpComponent jettyComponent = (JettyHttpComponent)context.getComponent("jetty");
jettyComponent.setMinThreads(5);
jettyComponent.setMaxThreads(5);
context.start();
- Set<Thread> threadSetAfterRestart = Thread.getAllStackTraces().keySet();
- long jettyThreadNumberAfterRestart = threadSetAfterRestart.stream().filter(thread -> thread.getName().contains("CamelJettyServer")).count();
- log.info("Jetty thread number after starting Camel Context: (expected 5): "+ jettyThreadNumberAfterRestart);
+ long jettyThreadNumberAfterRestart = countJettyThread();
+ log.info("Jetty thread number after starting Camel Context: (expected 5): "+ jettyThreadNumberAfterRestart);
- assertEquals(5,initialJettyThreadNumber);
+ assertEquals(5L,initialJettyThreadNumber);
- assertEquals(0,jettyThreadNumberAfterStop);
+ assertEquals(0L,jettyThreadNumberAfterStop);
- assertEquals(5,jettyThreadNumberAfterRestart);
+ assertEquals(5L,jettyThreadNumberAfterRestart);
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
- builder = new RouteBuilder() {
+ return new RouteBuilder() {
@Override
public void configure() throws Exception {
// setup the jetty component with the custom minThreads
- jettyComponent = (JettyHttpComponent)context.getComponent("jetty");
+ JettyHttpComponent jettyComponent = (JettyHttpComponent)context.getComponent("jetty");
jettyComponent.setMinThreads(5);
jettyComponent.setMaxThreads(5);
from("jetty://http://localhost:{{port}}/myserverWithCustomPoolSize").to("mock:result");
}
};
- return builder;
+ }
+
+ private long countJettyThread(){
+
+ Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
+ return threadSet.stream().filter(thread -> thread.getName().contains("CamelJettyServer")).count();
+
}
}