You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2023/02/22 17:35:25 UTC
[camel] 02/03: CAMEL-18988: Release the instances of DefaultCamelContext
This is an automated email from the ASF dual-hosted git repository.
nfilotto pushed a commit to branch CAMEL-18988/fix-leaks
in repository https://gitbox.apache.org/repos/asf/camel.git
commit b28d3198657b31baad9a5d8ba0eaa0697621a8b3
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Wed Feb 22 14:25:50 2023 +0100
CAMEL-18988: Release the instances of DefaultCamelContext
---
.../java/org/apache/camel/builder/ExchangeBuilderTest.java | 14 +++++++++++++-
.../org/apache/camel/catalog/RuntimeCamelCatalogTest.java | 6 ++++++
.../org/apache/camel/component/log/LogEndpointTest.java | 6 ++++++
.../camel/impl/CamelProduceInterfaceEventNotifierTest.java | 2 +-
.../camel/impl/event/CamelEventsTimestampEnabledTest.java | 10 +---------
.../apache/camel/impl/event/EventNotifierEventsTest.java | 3 +--
.../impl/event/EventNotifierExchangeCompletedTest.java | 10 +---------
.../camel/impl/event/EventNotifierExchangeSentTest.java | 2 +-
.../impl/event/EventNotifierFailureHandledEventsTest.java | 10 +---------
.../EventNotifierIgnoreCamelContextInitEventsTest.java | 3 +--
.../impl/event/EventNotifierRedeliveryEventsTest.java | 10 +---------
.../event/EventNotifierServiceStoppingFailedEventTest.java | 10 +---------
.../camel/impl/event/MultipleEventNotifierEventsTest.java | 13 ++-----------
.../camel/impl/event/SimpleEventNotifierEventsTest.java | 3 +--
.../java/org/apache/camel/processor/NavigateRouteTest.java | 2 +-
.../camel/throttling/ThrottlingExceptionRoutePolicy.java | 9 +++++++++
16 files changed, 47 insertions(+), 66 deletions(-)
diff --git a/core/camel-core/src/test/java/org/apache/camel/builder/ExchangeBuilderTest.java b/core/camel-core/src/test/java/org/apache/camel/builder/ExchangeBuilderTest.java
index a60d63296a6..ead07e64d03 100644
--- a/core/camel-core/src/test/java/org/apache/camel/builder/ExchangeBuilderTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/builder/ExchangeBuilderTest.java
@@ -21,18 +21,30 @@ import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.support.DefaultExchange;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class ExchangeBuilderTest {
- private static final CamelContext CONTEXT = new DefaultCamelContext();
+ private static CamelContext CONTEXT;
private static final String BODY = "Message Body";
private static final String KEY = "Header key";
private static final String VALUE = "Header value";
private static final String PROPERTY_KEY = "Property key";
private static final String PROPERTY_VALUE = "Property value";
+ @BeforeAll
+ public static void init() {
+ CONTEXT = new DefaultCamelContext();
+ }
+
+ @AfterAll
+ public static void destroy() {
+ CONTEXT = null;
+ }
+
@Test
public void testBuildAnExchangeWithDefaultPattern() {
Exchange exchange = new DefaultExchange(CONTEXT);
diff --git a/core/camel-core/src/test/java/org/apache/camel/catalog/RuntimeCamelCatalogTest.java b/core/camel-core/src/test/java/org/apache/camel/catalog/RuntimeCamelCatalogTest.java
index dc3f79fc9dc..bffba9d194c 100644
--- a/core/camel-core/src/test/java/org/apache/camel/catalog/RuntimeCamelCatalogTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/catalog/RuntimeCamelCatalogTest.java
@@ -23,6 +23,7 @@ import java.util.Objects;
import org.apache.camel.catalog.impl.DefaultRuntimeCamelCatalog;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.tooling.model.ComponentModel;
+import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -40,6 +41,11 @@ public class RuntimeCamelCatalogTest {
catalog.setCamelContext(new DefaultCamelContext());
}
+ @AfterAll
+ public static void cleanCamelCatalog() {
+ catalog = null;
+ }
+
@Test
public void testAsEndpointUriMapFile() throws Exception {
Map<String, String> map = new HashMap<>();
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointTest.java b/core/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointTest.java
index 4000fe7664d..57f6dfc30fc 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/log/LogEndpointTest.java
@@ -27,6 +27,7 @@ import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.spi.CamelLogger;
import org.apache.camel.spi.LogListener;
import org.apache.camel.support.processor.CamelLogProcessor;
+import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -36,6 +37,11 @@ public class LogEndpointTest extends ContextTestSupport {
private static Exchange logged;
+ @AfterAll
+ public static void clean() {
+ logged = null;
+ }
+
private static class MyLogger extends CamelLogProcessor {
@Override
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java
index 40a968e2117..0c2a21dcf73 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java
@@ -34,7 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class CamelProduceInterfaceEventNotifierTest extends ContextTestSupport {
- private static List<CamelEvent> events = new ArrayList<>();
+ private final List<CamelEvent> events = new ArrayList<>();
private CamelBeanPostProcessor postProcessor;
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/CamelEventsTimestampEnabledTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/CamelEventsTimestampEnabledTest.java
index 248bc571327..a4cd3933cf7 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/CamelEventsTimestampEnabledTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/CamelEventsTimestampEnabledTest.java
@@ -27,19 +27,11 @@ import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.spi.CamelEvent;
import org.apache.camel.support.EventNotifierSupport;
import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class CamelEventsTimestampEnabledTest extends ContextTestSupport {
- private static List<CamelEvent> events = new ArrayList<>();
-
- @Override
- @BeforeEach
- public void setUp() throws Exception {
- events.clear();
- super.setUp();
- }
+ private final List<CamelEvent> events = new ArrayList<>();
@Override
protected CamelContext createCamelContext() throws Exception {
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierEventsTest.java
index 616f17850a7..7cea0af763b 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierEventsTest.java
@@ -36,14 +36,13 @@ import static org.junit.jupiter.api.Assertions.*;
public class EventNotifierEventsTest {
- private static List<CamelEvent> events = new ArrayList<>();
+ private final List<CamelEvent> events = new ArrayList<>();
private CamelContext context;
private ProducerTemplate template;
@BeforeEach
public void setUp() throws Exception {
- events.clear();
context = createCamelContext();
context.addRoutes(createRouteBuilder());
template = context.createProducerTemplate();
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierExchangeCompletedTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierExchangeCompletedTest.java
index 8197969e0cf..e43d1adf263 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierExchangeCompletedTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierExchangeCompletedTest.java
@@ -26,21 +26,13 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.spi.CamelEvent;
import org.apache.camel.support.EventNotifierSupport;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class EventNotifierExchangeCompletedTest extends ContextTestSupport {
- private static List<CamelEvent> events = new ArrayList<>();
-
- @Override
- @BeforeEach
- public void setUp() throws Exception {
- events.clear();
- super.setUp();
- }
+ private final List<CamelEvent> events = new ArrayList<>();
@Override
protected CamelContext createCamelContext() throws Exception {
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierExchangeSentTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierExchangeSentTest.java
index 3091692e740..223476d26b0 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierExchangeSentTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierExchangeSentTest.java
@@ -35,7 +35,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class EventNotifierExchangeSentTest extends ContextTestSupport {
- protected List<CamelEvent> events = new ArrayList<>();
+ protected final List<CamelEvent> events = new ArrayList<>();
@BeforeEach
public void clearEvents() throws Exception {
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java
index 4daa4956d97..c35553dbef3 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java
@@ -28,21 +28,13 @@ import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.processor.SendProcessor;
import org.apache.camel.spi.CamelEvent;
import org.apache.camel.support.EventNotifierSupport;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
- private static List<CamelEvent> events = new ArrayList<>();
-
- @Override
- @BeforeEach
- public void setUp() throws Exception {
- events.clear();
- super.setUp();
- }
+ private final List<CamelEvent> events = new ArrayList<>();
@Override
public boolean isUseRouteBuilder() {
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierIgnoreCamelContextInitEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierIgnoreCamelContextInitEventsTest.java
index f04ab8cf1d0..1cd8f1b98e9 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierIgnoreCamelContextInitEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierIgnoreCamelContextInitEventsTest.java
@@ -34,14 +34,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class EventNotifierIgnoreCamelContextInitEventsTest {
- private static List<CamelEvent> events = new ArrayList<>();
+ private final List<CamelEvent> events = new ArrayList<>();
private CamelContext context;
private ProducerTemplate template;
@BeforeEach
public void setUp() throws Exception {
- events.clear();
context = createCamelContext();
context.addRoutes(createRouteBuilder());
template = context.createProducerTemplate();
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierRedeliveryEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierRedeliveryEventsTest.java
index 877664bdfd2..f6107dd1d46 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierRedeliveryEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierRedeliveryEventsTest.java
@@ -25,7 +25,6 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.spi.CamelEvent;
import org.apache.camel.support.EventNotifierSupport;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -33,14 +32,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class EventNotifierRedeliveryEventsTest extends ContextTestSupport {
- private static List<CamelEvent> events = new ArrayList<>();
-
- @Override
- @BeforeEach
- public void setUp() throws Exception {
- events.clear();
- super.setUp();
- }
+ private final List<CamelEvent> events = new ArrayList<>();
@Override
public boolean isUseRouteBuilder() {
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierServiceStoppingFailedEventTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierServiceStoppingFailedEventTest.java
index 14948b5b784..5298b9aa174 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierServiceStoppingFailedEventTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierServiceStoppingFailedEventTest.java
@@ -24,23 +24,15 @@ import org.apache.camel.ContextTestSupport;
import org.apache.camel.Service;
import org.apache.camel.spi.CamelEvent;
import org.apache.camel.support.EventNotifierSupport;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class EventNotifierServiceStoppingFailedEventTest extends ContextTestSupport {
- private static List<CamelEvent> events = new ArrayList<>();
+ private final List<CamelEvent> events = new ArrayList<>();
private static String stopOrder;
- @Override
- @BeforeEach
- public void setUp() throws Exception {
- events.clear();
- super.setUp();
- }
-
@Override
protected CamelContext createCamelContext() throws Exception {
CamelContext context = super.createCamelContext();
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/MultipleEventNotifierEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/MultipleEventNotifierEventsTest.java
index b53eaf830d1..7ad5f8cc34d 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/MultipleEventNotifierEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/MultipleEventNotifierEventsTest.java
@@ -25,7 +25,6 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.spi.CamelEvent;
import org.apache.camel.support.EventNotifierSupport;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -33,22 +32,14 @@ import static org.junit.jupiter.api.Assertions.fail;
public class MultipleEventNotifierEventsTest extends ContextTestSupport {
- private static List<CamelEvent> events = new ArrayList<>();
- private static List<CamelEvent> events2 = new ArrayList<>();
+ private final List<CamelEvent> events = new ArrayList<>();
+ private final List<CamelEvent> events2 = new ArrayList<>();
@Override
protected boolean useJmx() {
return true;
}
- @Override
- @BeforeEach
- public void setUp() throws Exception {
- events.clear();
- events2.clear();
- super.setUp();
- }
-
@Override
protected CamelContext createCamelContext() throws Exception {
DefaultCamelContext context = new DefaultCamelContext(createRegistry());
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/SimpleEventNotifierEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/SimpleEventNotifierEventsTest.java
index ce174d386ba..14dd994018a 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/SimpleEventNotifierEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/SimpleEventNotifierEventsTest.java
@@ -36,14 +36,13 @@ import static org.junit.jupiter.api.Assertions.*;
public class SimpleEventNotifierEventsTest {
- private static List<CamelEvent> events = new ArrayList<>();
+ private final List<CamelEvent> events = new ArrayList<>();
private CamelContext context;
private ProducerTemplate template;
@BeforeEach
public void setUp() throws Exception {
- events.clear();
context = createCamelContext();
context.addRoutes(createRouteBuilder());
template = context.createProducerTemplate();
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/NavigateRouteTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/NavigateRouteTest.java
index 9adc2638950..417c9026a10 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/NavigateRouteTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/NavigateRouteTest.java
@@ -34,7 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
*/
public class NavigateRouteTest extends ContextTestSupport {
- private static List<Processor> processors = new ArrayList<>();
+ private final List<Processor> processors = new ArrayList<>();
@Test
public void testNavigateRoute() throws Exception {
diff --git a/core/camel-support/src/main/java/org/apache/camel/throttling/ThrottlingExceptionRoutePolicy.java b/core/camel-support/src/main/java/org/apache/camel/throttling/ThrottlingExceptionRoutePolicy.java
index fc6a312d48b..94a59b00fb6 100644
--- a/core/camel-support/src/main/java/org/apache/camel/throttling/ThrottlingExceptionRoutePolicy.java
+++ b/core/camel-support/src/main/java/org/apache/camel/throttling/ThrottlingExceptionRoutePolicy.java
@@ -114,6 +114,15 @@ public class ThrottlingExceptionRoutePolicy extends RoutePolicySupport implement
}
}
+ @Override
+ protected void doStop() throws Exception {
+ Timer timer = halfOpenTimer;
+ if (timer != null) {
+ timer.cancel();
+ halfOpenTimer = null;
+ }
+ }
+
@Override
public void onExchangeDone(Route route, Exchange exchange) {
if (keepOpen.get()) {