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() {

Reply via email to