This is an automated email from the ASF dual-hosted git repository. janbednar pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new ffb362e CAMEL-14999: Fix showCaughtException ffb362e is described below commit ffb362eac47541d2df07247657f8d8de8e8cf591 Author: Jan Bednář <m...@janbednar.eu> AuthorDate: Sat May 2 20:01:28 2020 +0200 CAMEL-14999: Fix showCaughtException --- .../apache/camel/component/log/LogEndpoint.java | 1 + .../camel/component/log/LogEndpointTest.java | 46 ++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/components/camel-log/src/main/java/org/apache/camel/component/log/LogEndpoint.java b/components/camel-log/src/main/java/org/apache/camel/component/log/LogEndpoint.java index 72dedc7..ef82296 100644 --- a/components/camel-log/src/main/java/org/apache/camel/component/log/LogEndpoint.java +++ b/components/camel-log/src/main/java/org/apache/camel/component/log/LogEndpoint.java @@ -132,6 +132,7 @@ public class LogEndpoint extends ProcessorEndpoint { def.setShowBody(showBody); def.setShowBodyType(showBodyType); def.setShowException(showException); + def.setShowCaughtException(showCaughtException); def.setShowStackTrace(showStackTrace); def.setShowAll(showAll); def.setMultiline(multiline); 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 bbfd4ba..08e02ac 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 @@ -19,11 +19,16 @@ package org.apache.camel.component.log; import org.apache.camel.AsyncCallback; import org.apache.camel.ContextTestSupport; import org.apache.camel.Exchange; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.builder.RouteBuilder; 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.Test; +import java.util.concurrent.atomic.AtomicReference; + public class LogEndpointTest extends ContextTestSupport { private static Exchange logged; @@ -42,6 +47,21 @@ public class LogEndpointTest extends ContextTestSupport { } } + private static class TestLogListener implements LogListener { + + private final AtomicReference<String> logged; + + public TestLogListener(AtomicReference<String> logged) { + this.logged = logged; + } + + @Override + public String onLog(Exchange exchange, CamelLogger camelLogger, String message) { + logged.set(message); + return message; + } + } + @Test public void testLogEndpoint() throws Exception { MockEndpoint mock = getMockEndpoint("mock:result"); @@ -65,6 +85,32 @@ public class LogEndpointTest extends ContextTestSupport { out.assertIsSatisfied(); } + @Test + public void testShowCaughtException() { + final AtomicReference<String> logged = new AtomicReference<>(); + context.adapt(ExtendedCamelContext.class).addLogListener(new TestLogListener(logged)); + Exchange ex = createExchangeWithBody(null); + ex.setProperty(Exchange.EXCEPTION_CAUGHT, new RuntimeException("test")); + template.send("log:testShowCaughtException?showCaughtException=true", ex); + assertEquals( + "Exchange[ExchangePattern: InOnly, BodyType: null, Body: [Body is null], CaughtExceptionType: java.lang.RuntimeException, CaughtExceptionMessage: test]", + logged.get() + ); + } + + @Test + public void testShowException() { + final AtomicReference<String> logged = new AtomicReference<>(); + context.adapt(ExtendedCamelContext.class).addLogListener(new TestLogListener(logged)); + Exchange ex = createExchangeWithBody(null); + ex.setException(new RuntimeException("test")); + template.send("log:testShowException?showException=true", ex); + assertEquals( + "Exchange[ExchangePattern: InOnly, BodyType: null, Body: [Body is null], ExceptionType: java.lang.RuntimeException, ExceptionMessage: test]", + logged.get() + ); + } + @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() {