This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new bbd7c363cfc CAMEL-18957: prevent a few NPEs if the context is not
created
bbd7c363cfc is described below
commit bbd7c363cfc47fa82e2afc28d95b9bd0033022ba
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Wed Mar 15 09:11:46 2023 -0300
CAMEL-18957: prevent a few NPEs if the context is not created
---
.../test/infra/core/DefaultCamelContextExtension.java | 4 ++++
.../test/infra/core/DefaultContextLifeCycleManager.java | 15 +++++++++++++--
.../test/infra/core/TransientCamelContextExtension.java | 3 +++
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git
a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultCamelContextExtension.java
b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultCamelContextExtension.java
index bd746ea12f2..be965607ef5 100644
---
a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultCamelContextExtension.java
+++
b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultCamelContextExtension.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.test.infra.core;
+import java.util.Objects;
+
import org.apache.camel.BindToRegistry;
import org.apache.camel.CamelContext;
import org.apache.camel.ConsumerTemplate;
@@ -26,6 +28,7 @@ import org.apache.camel.ProducerTemplate;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.infra.core.annotations.ContextFixture;
import org.apache.camel.test.infra.core.annotations.RouteFixture;
+import org.apache.camel.util.ObjectHelper;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -69,6 +72,7 @@ public class DefaultCamelContextExtension extends
AbstractCamelContextExtension
@Override
public void beforeAll(ExtensionContext extensionContext) throws Exception {
context = createCamelContext(fixtureProcessor, extensionContext);
+ Objects.requireNonNull(context, "Cannot run the test because the
context is null");
producerTemplate = context.createProducerTemplate();
producerTemplate.start();
diff --git
a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultContextLifeCycleManager.java
b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultContextLifeCycleManager.java
index 6cadadd2f73..5316a30479e 100644
---
a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultContextLifeCycleManager.java
+++
b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultContextLifeCycleManager.java
@@ -19,12 +19,15 @@ package org.apache.camel.test.infra.core;
import org.apache.camel.CamelContext;
import org.apache.camel.component.mock.MockEndpoint;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A default lifecycle manager suitable for most of the tests within Camel and
end-user applications
*/
public class DefaultContextLifeCycleManager implements ContextLifeCycleManager
{
public static final int DEFAULT_SHUTDOWN_TIMEOUT = 10;
+ private static final Logger LOG =
LoggerFactory.getLogger(DefaultContextLifeCycleManager.class);
private int shutdownTimeout = DEFAULT_SHUTDOWN_TIMEOUT;
private boolean reset = true;
@@ -47,12 +50,20 @@ public class DefaultContextLifeCycleManager implements
ContextLifeCycleManager {
@Override
public void afterAll(CamelContext context) {
- context.shutdown();
+ if (context != null) {
+ context.shutdown();
+ } else {
+ LOG.error("Cannot run the JUnit's afterAll because the context is
null: a problem may have prevented the context from starting");
+ }
}
@Override
public void beforeAll(CamelContext context) {
- context.getShutdownStrategy().setTimeout(shutdownTimeout);
+ if (context != null) {
+ context.getShutdownStrategy().setTimeout(shutdownTimeout);
+ } else {
+ LOG.error("Cannot run the JUnit's beforeAll because the context is
null: a problem may have prevented the context from starting");
+ }
}
@Override
diff --git
a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/TransientCamelContextExtension.java
b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/TransientCamelContextExtension.java
index e3a6762fcd4..275dd50c4d2 100644
---
a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/TransientCamelContextExtension.java
+++
b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/TransientCamelContextExtension.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.test.infra.core;
+import java.util.Objects;
+
import org.apache.camel.BindToRegistry;
import org.apache.camel.CamelContext;
import org.apache.camel.ConsumerTemplate;
@@ -83,6 +85,7 @@ public class TransientCamelContextExtension extends
AbstractCamelContextExtensio
private void recreateContext(ExtensionContext extensionContext) {
context = createCamelContext(fixtureProcessor, extensionContext);
+ Objects.requireNonNull(context, "Cannot run the test because the
context is null");
producerTemplate = context.createProducerTemplate();
producerTemplate.start();