This is an automated email from the ASF dual-hosted git repository. oscerd pushed a commit to branch camel-4.18.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit fdcf67a00470783ccb93b948883b6a4c5275aff5 Author: Andrea Cosentino <[email protected]> AuthorDate: Wed Jun 10 18:23:46 2026 +0200 CAMEL-23651: align muteException default in netty-http and undertow camel-netty-http and camel-undertow now default the muteException consumer option to true, aligning them with the other HTTP server components (camel-http, camel-jetty, camel-servlet and camel-platform-http). When an exchange fails processing on the consumer side, the HTTP response now has an empty body instead of returning the exception stack trace as text/plain. The default is flipped at both component and endpoint level in both components. In camel-undertow the Rest DSL consumer path now also propagates the endpoint muteException value to the RestUndertowHttpBinding, which previously hard-coded it to false and silently ignored the option in Rest DSL mode. muteException keeps taking precedence over transferException, as in the other HTTP server components. Routes that rely on the stack trace in the response body must set muteException=false explicitly. Includes new tests for the default behaviour (plain consumers and undertow Rest DSL), updated tests opting out explicitly, regenerated metadata (component JSONs, catalog, endpoint/component DSL) and a 4.21 upgrade-guide entry. Closes #23913 --- .../camel/catalog/components/netty-http.json | 4 +-- .../apache/camel/catalog/components/undertow.json | 4 +-- .../camel/component/netty/http/netty-http.json | 4 +-- .../component/netty/http/NettyHttpComponent.java | 4 +-- .../netty/http/NettyHttpConfiguration.java | 4 +-- ...ettyHttp500ErrorThrowExceptionOnServerTest.java | 2 +- .../http/NettyHttpMuteExceptionByDefaultTest.java} | 33 ++++++++++------------ .../netty/http/NettyHttpTransferExceptionTest.java | 2 +- .../apache/camel/component/undertow/undertow.json | 4 +-- .../component/undertow/UndertowComponent.java | 8 ++++-- .../camel/component/undertow/UndertowEndpoint.java | 4 +-- ...ava => UndertowMuteExceptionByDefaultTest.java} | 23 +++++++-------- .../undertow/UndertowTransferExceptionTest.java | 3 +- .../RestUndertowMuteExceptionByDefaultTest.java} | 33 ++++++++++++---------- .../ROOT/pages/camel-4x-upgrade-guide-4_18.adoc | 25 ++++++++++++++++ .../dsl/NettyHttpComponentBuilderFactory.java | 2 +- .../dsl/UndertowComponentBuilderFactory.java | 2 +- .../dsl/NettyHttpEndpointBuilderFactory.java | 4 +-- .../dsl/UndertowEndpointBuilderFactory.java | 4 +-- 19 files changed, 97 insertions(+), 72 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/netty-http.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/netty-http.json index f0cee1713118..3733a6b9ba65 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/netty-http.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/netty-http.json @@ -35,7 +35,7 @@ "networkInterface": { "index": 7, "kind": "property", "displayName": "Network Interface", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When using UDP then this option can be used to specify a network interface by its [...] "bridgeErrorHandler": { "index": 8, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...] "clientMode": { "index": 9, "kind": "property", "displayName": "Client Mode", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If the clientMode is true, netty consumer will connect the address as a TCP client." }, - "muteException": { "index": 10, "kind": "property", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, + "muteException": { "index": 10, "kind": "property", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, "reconnect": { "index": 11, "kind": "property", "displayName": "Reconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Used only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if t [...] "reconnectInterval": { "index": 12, "kind": "property", "displayName": "Reconnect Interval", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Used if reconnect and clientMode is enabled. The interval in milli seconds to attem [...] "backlog": { "index": 13, "kind": "property", "displayName": "Backlog", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending [...] @@ -144,7 +144,7 @@ "sync": { "index": 9, "kind": "parameter", "displayName": "Sync", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to set endpoint as one-way (false) or request-response (true)" }, "tcpNoDelay": { "index": 10, "kind": "parameter", "displayName": "Tcp No Delay", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to improve TCP protocol performance" }, "matchOnUriPrefix": { "index": 11, "kind": "parameter", "displayName": "Match On Uri Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether or not Camel should try to find a target consumer by matching [...] - "muteException": { "index": 12, "kind": "parameter", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If enabled and an Exchange failed processing on the consumer side the respons [...] + "muteException": { "index": 12, "kind": "parameter", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If enabled and an Exchange failed processing on the consumer side the response [...] "send503whenSuspended": { "index": 13, "kind": "parameter", "displayName": "Send503when Suspended", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether to send back HTTP status code 503 when the consumer has [...] "backlog": { "index": 14, "kind": "parameter", "displayName": "Backlog", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort [...] "bossCount": { "index": 15, "kind": "parameter", "displayName": "Boss Count", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "When netty works on nio mode, it uses default bossCount parameter from Ne [...] diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/undertow.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/undertow.json index f1f8e37d62a4..74f0752a7161 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/undertow.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/undertow.json @@ -26,7 +26,7 @@ }, "componentProperties": { "bridgeErrorHandler": { "index": 0, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...] - "muteException": { "index": 1, "kind": "property", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, + "muteException": { "index": 1, "kind": "property", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...] "autowiredEnabled": { "index": 3, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...] "hostOptions": { "index": 4, "kind": "property", "displayName": "Host Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.undertow.UndertowHostOptions", "deprecated": false, "autowired": false, "secret": false, "description": "To configure common options, such as thread pools" }, @@ -60,7 +60,7 @@ "accessLog": { "index": 2, "kind": "parameter", "displayName": "Access Log", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether or not the consumer should write access log" }, "httpMethodRestrict": { "index": 3, "kind": "parameter", "displayName": "Http Method Restrict", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Used to only allow consuming if the HttpMethod matches, such as GET\/POST\/PUT etc. Multiple methods can be specified separated by comma." }, "matchOnUriPrefix": { "index": 4, "kind": "parameter", "displayName": "Match On Uri Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether or not the consumer should try to find a target consumer by matching the URI prefix if no exact match is found." }, - "muteException": { "index": 5, "kind": "parameter", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, + "muteException": { "index": 5, "kind": "parameter", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, "optionsEnabled": { "index": 6, "kind": "parameter", "displayName": "Options Enabled", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP OPTIONS for this Servlet consumer. By default OPTIONS is turned off." }, "transferException": { "index": 7, "kind": "parameter", "displayName": "Transfer Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side and if the caused Exception was send back serialized in the response as a application\/x-java-serialized-object content [...] "bridgeErrorHandler": { "index": 8, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] diff --git a/components/camel-netty-http/src/generated/resources/META-INF/org/apache/camel/component/netty/http/netty-http.json b/components/camel-netty-http/src/generated/resources/META-INF/org/apache/camel/component/netty/http/netty-http.json index f0cee1713118..3733a6b9ba65 100644 --- a/components/camel-netty-http/src/generated/resources/META-INF/org/apache/camel/component/netty/http/netty-http.json +++ b/components/camel-netty-http/src/generated/resources/META-INF/org/apache/camel/component/netty/http/netty-http.json @@ -35,7 +35,7 @@ "networkInterface": { "index": 7, "kind": "property", "displayName": "Network Interface", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When using UDP then this option can be used to specify a network interface by its [...] "bridgeErrorHandler": { "index": 8, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...] "clientMode": { "index": 9, "kind": "property", "displayName": "Client Mode", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If the clientMode is true, netty consumer will connect the address as a TCP client." }, - "muteException": { "index": 10, "kind": "property", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, + "muteException": { "index": 10, "kind": "property", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, "reconnect": { "index": 11, "kind": "property", "displayName": "Reconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Used only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if t [...] "reconnectInterval": { "index": 12, "kind": "property", "displayName": "Reconnect Interval", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Used if reconnect and clientMode is enabled. The interval in milli seconds to attem [...] "backlog": { "index": 13, "kind": "property", "displayName": "Backlog", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending [...] @@ -144,7 +144,7 @@ "sync": { "index": 9, "kind": "parameter", "displayName": "Sync", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to set endpoint as one-way (false) or request-response (true)" }, "tcpNoDelay": { "index": 10, "kind": "parameter", "displayName": "Tcp No Delay", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to improve TCP protocol performance" }, "matchOnUriPrefix": { "index": 11, "kind": "parameter", "displayName": "Match On Uri Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether or not Camel should try to find a target consumer by matching [...] - "muteException": { "index": 12, "kind": "parameter", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If enabled and an Exchange failed processing on the consumer side the respons [...] + "muteException": { "index": 12, "kind": "parameter", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If enabled and an Exchange failed processing on the consumer side the response [...] "send503whenSuspended": { "index": 13, "kind": "parameter", "displayName": "Send503when Suspended", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether to send back HTTP status code 503 when the consumer has [...] "backlog": { "index": 14, "kind": "parameter", "displayName": "Backlog", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort [...] "bossCount": { "index": 15, "kind": "parameter", "displayName": "Boss Count", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "When netty works on nio mode, it uses default bossCount parameter from Ne [...] diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java index b1aded8fcac4..65a9506a82ac 100644 --- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java +++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java @@ -74,8 +74,8 @@ public class NettyHttpComponent extends NettyComponent private NettyHttpSecurityConfiguration securityConfiguration; @Metadata(label = "security", defaultValue = "false") private boolean useGlobalSslContextParameters; - @Metadata(label = "consumer") - private boolean muteException; + @Metadata(label = "consumer", defaultValue = "true") + private boolean muteException = true; public NettyHttpComponent() { // use the http configuration and filter strategy diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java index f5108e049124..9a28081fd4c6 100644 --- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java +++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java @@ -55,8 +55,8 @@ public class NettyHttpConfiguration extends NettyConfiguration { private boolean transferException; @UriParam(label = "advanced,security") private String deserializationFilter; - @UriParam(label = "consumer") - private boolean muteException; + @UriParam(label = "consumer", defaultValue = "true") + private boolean muteException = true; @UriParam(label = "consumer") private boolean matchOnUriPrefix; @UriParam(label = "consumer,advanced", defaultValue = "true") diff --git a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttp500ErrorThrowExceptionOnServerTest.java b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttp500ErrorThrowExceptionOnServerTest.java index 940658cf9c1f..5bbc0de2d63c 100644 --- a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttp500ErrorThrowExceptionOnServerTest.java +++ b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttp500ErrorThrowExceptionOnServerTest.java @@ -62,7 +62,7 @@ public class NettyHttp500ErrorThrowExceptionOnServerTest extends BaseNettyTestSu return new RouteBuilder() { @Override public void configure() { - from("netty-http:http://0.0.0.0:{{port}}/foo") + from("netty-http:http://0.0.0.0:{{port}}/foo?muteException=false") .to("mock:input") .throwException(new IllegalArgumentException("Camel cannot do this")); } diff --git a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpMuteExceptionByDefaultTest.java similarity index 64% copy from components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java copy to components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpMuteExceptionByDefaultTest.java index 4ce054564d09..27a1f2e357f0 100644 --- a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java +++ b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpMuteExceptionByDefaultTest.java @@ -14,45 +14,42 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.component.undertow; - -import java.io.IOException; -import java.io.ObjectInputStream; +package org.apache.camel.component.netty.http; import org.apache.camel.builder.RouteBuilder; import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.core5.http.io.entity.EntityUtils; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class UndertowTransferExceptionTest extends BaseUndertowTest { +public class NettyHttpMuteExceptionByDefaultTest extends BaseNettyTestSupport { @Test - public void getSerializedExceptionTest() throws IOException, ClassNotFoundException { - HttpGet get = new HttpGet("http://localhost:" + getPort() + "/test/transfer"); - get.addHeader("Accept", "application/x-java-serialized-object"); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(get)) { - - ObjectInputStream in = new ObjectInputStream(response.getEntity().getContent()); - IllegalArgumentException e = (IllegalArgumentException) in.readObject(); - assertNotNull(e); + public void testMuteExceptionByDefault() throws Exception { + HttpGet get = new HttpGet("http://localhost:" + getPort() + "/foo"); + get.addHeader("Accept", "application/text"); + try (CloseableHttpClient client = HttpClients.createDefault(); + CloseableHttpResponse response = client.execute(get)) { + String body = EntityUtils.toString(response.getEntity(), "UTF-8"); + assertNotNull(body); + assertEquals("", body); assertEquals(500, response.getCode()); - assertEquals("Camel cannot do this", e.getMessage()); } } @Override protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { - + @Override public void configure() { - from("undertow:http://localhost:" + getPort() + "/test/transfer?transferException=true").to("mock:input") + // muteException is not configured so the default (true) applies + from("netty-http:http://0.0.0.0:{{port}}/foo") + .to("mock:input") .throwException(new IllegalArgumentException("Camel cannot do this")); } }; diff --git a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpTransferExceptionTest.java b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpTransferExceptionTest.java index 91be061ba2b0..a173b6660a93 100644 --- a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpTransferExceptionTest.java +++ b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpTransferExceptionTest.java @@ -46,7 +46,7 @@ public class NettyHttpTransferExceptionTest extends BaseNettyTestSupport { return new RouteBuilder() { @Override public void configure() { - from("netty-http:http://0.0.0.0:{{port}}/foo?transferException=true") + from("netty-http:http://0.0.0.0:{{port}}/foo?muteException=false&transferException=true") .to("mock:input") .throwException(new IllegalArgumentException("Camel cannot do this")); } diff --git a/components/camel-undertow/src/generated/resources/META-INF/org/apache/camel/component/undertow/undertow.json b/components/camel-undertow/src/generated/resources/META-INF/org/apache/camel/component/undertow/undertow.json index f1f8e37d62a4..74f0752a7161 100644 --- a/components/camel-undertow/src/generated/resources/META-INF/org/apache/camel/component/undertow/undertow.json +++ b/components/camel-undertow/src/generated/resources/META-INF/org/apache/camel/component/undertow/undertow.json @@ -26,7 +26,7 @@ }, "componentProperties": { "bridgeErrorHandler": { "index": 0, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...] - "muteException": { "index": 1, "kind": "property", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, + "muteException": { "index": 1, "kind": "property", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...] "autowiredEnabled": { "index": 3, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...] "hostOptions": { "index": 4, "kind": "property", "displayName": "Host Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.undertow.UndertowHostOptions", "deprecated": false, "autowired": false, "secret": false, "description": "To configure common options, such as thread pools" }, @@ -60,7 +60,7 @@ "accessLog": { "index": 2, "kind": "parameter", "displayName": "Access Log", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether or not the consumer should write access log" }, "httpMethodRestrict": { "index": 3, "kind": "parameter", "displayName": "Http Method Restrict", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Used to only allow consuming if the HttpMethod matches, such as GET\/POST\/PUT etc. Multiple methods can be specified separated by comma." }, "matchOnUriPrefix": { "index": 4, "kind": "parameter", "displayName": "Match On Uri Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether or not the consumer should try to find a target consumer by matching the URI prefix if no exact match is found." }, - "muteException": { "index": 5, "kind": "parameter", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, + "muteException": { "index": 5, "kind": "parameter", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." }, "optionsEnabled": { "index": 6, "kind": "parameter", "displayName": "Options Enabled", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP OPTIONS for this Servlet consumer. By default OPTIONS is turned off." }, "transferException": { "index": 7, "kind": "parameter", "displayName": "Transfer Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side and if the caused Exception was send back serialized in the response as a application\/x-java-serialized-object content [...] "bridgeErrorHandler": { "index": 8, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java index 9b57bb5b6a63..67bf2ca62113 100644 --- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java +++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java @@ -81,8 +81,8 @@ public class UndertowComponent extends DefaultComponent private boolean useGlobalSslContextParameters; @Metadata(label = "advanced") private UndertowHostOptions hostOptions; - @Metadata(label = "consumer") - private boolean muteException; + @Metadata(label = "consumer", defaultValue = "true") + private boolean muteException = true; @Metadata(label = "security") private Object securityConfiguration; @Metadata(label = "security") @@ -271,7 +271,9 @@ public class UndertowComponent extends DefaultComponent if (!map.containsKey("undertowHttpBinding")) { // use the rest binding, if not using a custom http binding - endpoint.setUndertowHttpBinding(new RestUndertowHttpBinding(endpoint.isUseStreaming())); + UndertowHttpBinding binding = new RestUndertowHttpBinding(endpoint.isUseStreaming()); + binding.setMuteException(endpoint.getMuteException()); + endpoint.setUndertowHttpBinding(binding); } // configure consumer properties diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowEndpoint.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowEndpoint.java index a4e1d259359b..1edcadeaf1d4 100644 --- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowEndpoint.java +++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowEndpoint.java @@ -98,8 +98,8 @@ public class UndertowEndpoint extends DefaultEndpoint private Boolean throwExceptionOnFailure = Boolean.TRUE; @UriParam(label = "consumer", defaultValue = "false") private Boolean transferException = Boolean.FALSE; - @UriParam(label = "consumer", defaultValue = "false") - private Boolean muteException = Boolean.FALSE; + @UriParam(label = "consumer", defaultValue = "true") + private Boolean muteException = Boolean.TRUE; @UriParam(label = "producer", defaultValue = "true") private Boolean keepAlive = Boolean.TRUE; @UriParam(label = "producer", defaultValue = "true") diff --git a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowMuteExceptionByDefaultTest.java similarity index 74% copy from components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java copy to components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowMuteExceptionByDefaultTest.java index 4ce054564d09..bbe93586a275 100644 --- a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java +++ b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowMuteExceptionByDefaultTest.java @@ -16,34 +16,30 @@ */ package org.apache.camel.component.undertow; -import java.io.IOException; -import java.io.ObjectInputStream; - import org.apache.camel.builder.RouteBuilder; import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.core5.http.io.entity.EntityUtils; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class UndertowTransferExceptionTest extends BaseUndertowTest { +public class UndertowMuteExceptionByDefaultTest extends BaseUndertowTest { @Test - public void getSerializedExceptionTest() throws IOException, ClassNotFoundException { - HttpGet get = new HttpGet("http://localhost:" + getPort() + "/test/transfer"); - get.addHeader("Accept", "application/x-java-serialized-object"); - + public void muteExceptionByDefaultTest() throws Exception { + HttpGet get = new HttpGet("http://localhost:" + getPort() + "/test/mute"); + get.addHeader("Accept", "application/text"); try (CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = httpClient.execute(get)) { - ObjectInputStream in = new ObjectInputStream(response.getEntity().getContent()); - IllegalArgumentException e = (IllegalArgumentException) in.readObject(); - assertNotNull(e); + String responseString = EntityUtils.toString(response.getEntity(), "UTF-8"); + assertNotNull(responseString); + assertEquals("", responseString); assertEquals(500, response.getCode()); - assertEquals("Camel cannot do this", e.getMessage()); } } @@ -52,7 +48,8 @@ public class UndertowTransferExceptionTest extends BaseUndertowTest { return new RouteBuilder() { public void configure() { - from("undertow:http://localhost:" + getPort() + "/test/transfer?transferException=true").to("mock:input") + // muteException is not configured so the default (true) applies + from("undertow:http://localhost:" + getPort() + "/test/mute").to("mock:input") .throwException(new IllegalArgumentException("Camel cannot do this")); } }; diff --git a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java index 4ce054564d09..677b00591d17 100644 --- a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java +++ b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java @@ -52,7 +52,8 @@ public class UndertowTransferExceptionTest extends BaseUndertowTest { return new RouteBuilder() { public void configure() { - from("undertow:http://localhost:" + getPort() + "/test/transfer?transferException=true").to("mock:input") + from("undertow:http://localhost:" + getPort() + "/test/transfer?muteException=false&transferException=true") + .to("mock:input") .throwException(new IllegalArgumentException("Camel cannot do this")); } }; diff --git a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/rest/RestUndertowMuteExceptionByDefaultTest.java similarity index 67% copy from components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java copy to components/camel-undertow/src/test/java/org/apache/camel/component/undertow/rest/RestUndertowMuteExceptionByDefaultTest.java index 4ce054564d09..79c0457ad749 100644 --- a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowTransferExceptionTest.java +++ b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/rest/RestUndertowMuteExceptionByDefaultTest.java @@ -14,45 +14,48 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.component.undertow; - -import java.io.IOException; -import java.io.ObjectInputStream; +package org.apache.camel.component.undertow.rest; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.undertow.BaseUndertowTest; import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.core5.http.io.entity.EntityUtils; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class UndertowTransferExceptionTest extends BaseUndertowTest { +public class RestUndertowMuteExceptionByDefaultTest extends BaseUndertowTest { @Test - public void getSerializedExceptionTest() throws IOException, ClassNotFoundException { - HttpGet get = new HttpGet("http://localhost:" + getPort() + "/test/transfer"); - get.addHeader("Accept", "application/x-java-serialized-object"); - + public void muteExceptionByDefaultTest() throws Exception { + HttpGet get = new HttpGet("http://localhost:" + getPort() + "/api/fail"); + get.addHeader("Accept", "application/text"); try (CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = httpClient.execute(get)) { - ObjectInputStream in = new ObjectInputStream(response.getEntity().getContent()); - IllegalArgumentException e = (IllegalArgumentException) in.readObject(); - assertNotNull(e); + String responseString = EntityUtils.toString(response.getEntity(), "UTF-8"); + assertNotNull(responseString); + assertEquals("", responseString); assertEquals(500, response.getCode()); - assertEquals("Camel cannot do this", e.getMessage()); } } @Override protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { - + @Override public void configure() { - from("undertow:http://localhost:" + getPort() + "/test/transfer?transferException=true").to("mock:input") + restConfiguration().component("undertow").host("localhost").port(getPort()); + + // muteException is not configured so the default (true) applies + rest("/api") + .get("fail").to("direct:fail"); + + from("direct:fail") .throwException(new IllegalArgumentException("Camel cannot do this")); } }; diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc index cf011fe04fd5..e3f5a6ba3142 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc @@ -909,6 +909,31 @@ transport `from` and the `irc:` `to`. Allowing untrusted senders to drive `IrcConstants.IRC_SEND_TO` without such a mapping step is not the intended use of the component. +=== camel-netty-http / camel-undertow - potential breaking change + +The `muteException` consumer option now defaults to `true` in `camel-netty-http` and +`camel-undertow`, aligning these components with the other HTTP server components +(`camel-http`, `camel-jetty`, `camel-servlet`, and `camel-platform-http`), which have +been defaulting `muteException` to `true` for a long time. + +When an exchange fails processing on the consumer side, the HTTP response now has an +empty body. Previously the response body contained the exception stack trace as +`text/plain`. + +Routes that rely on the exception stack trace being present in the response body must +set `muteException=false` explicitly on the endpoint or component after the upgrade: + +[source,text] +---- +netty-http:http://0.0.0.0:8080/foo?muteException=false +undertow:http://0.0.0.0:8080/foo?muteException=false +---- + +Note that `muteException` takes precedence over `transferException`, as it already does +in the other HTTP server components. Routes using `transferException=true` on these two +components must now also set `muteException=false` for the serialized exception to be +returned in the response. + == Upgrading from 4.18.1 to 4.18.2 === camel-platform-http-main diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/NettyHttpComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/NettyHttpComponentBuilderFactory.java index 0034c189d903..d8036cb42c42 100644 --- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/NettyHttpComponentBuilderFactory.java +++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/NettyHttpComponentBuilderFactory.java @@ -248,7 +248,7 @@ public interface NettyHttpComponentBuilderFactory { * * The option is a: <code>boolean</code> type. * - * Default: false + * Default: true * Group: consumer * * @param muteException the value to set diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/UndertowComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/UndertowComponentBuilderFactory.java index efe30b25302b..a315e4cc8c5b 100644 --- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/UndertowComponentBuilderFactory.java +++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/UndertowComponentBuilderFactory.java @@ -87,7 +87,7 @@ public interface UndertowComponentBuilderFactory { * * The option is a: <code>boolean</code> type. * - * Default: false + * Default: true * Group: consumer * * @param muteException the value to set diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/NettyHttpEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/NettyHttpEndpointBuilderFactory.java index 293361999ec5..f88757a4fce7 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/NettyHttpEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/NettyHttpEndpointBuilderFactory.java @@ -323,7 +323,7 @@ public interface NettyHttpEndpointBuilderFactory { * * The option is a: <code>boolean</code> type. * - * Default: false + * Default: true * Group: consumer * * @param muteException the value to set @@ -339,7 +339,7 @@ public interface NettyHttpEndpointBuilderFactory { * * The option will be converted to a <code>boolean</code> type. * - * Default: false + * Default: true * Group: consumer * * @param muteException the value to set diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/UndertowEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/UndertowEndpointBuilderFactory.java index d6f43e9b7dbe..75e9ac7d010e 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/UndertowEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/UndertowEndpointBuilderFactory.java @@ -172,7 +172,7 @@ public interface UndertowEndpointBuilderFactory { * * The option is a: <code>java.lang.Boolean</code> type. * - * Default: false + * Default: true * Group: consumer * * @param muteException the value to set @@ -189,7 +189,7 @@ public interface UndertowEndpointBuilderFactory { * The option will be converted to a <code>java.lang.Boolean</code> * type. * - * Default: false + * Default: true * Group: consumer * * @param muteException the value to set
