This is an automated email from the ASF dual-hosted git repository. ffang 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 e96225a [CAMEL-16460]The Content-Language of CxfRsProducer should be configurable-polish up e96225a is described below commit e96225adbabe8a70c64b8725908fdbe6b769dc44 Author: Freeman Fang <freeman.f...@gmail.com> AuthorDate: Tue Apr 6 15:01:59 2021 -0400 [CAMEL-16460]The Content-Language of CxfRsProducer should be configurable-polish up --- .../apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java index 56e3104..5d7e212 100644 --- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java +++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java @@ -64,6 +64,8 @@ public class DefaultCxfRsBinding implements CxfRsBinding, HeaderFilterStrategyAw private HeaderFilterStrategy headerFilterStrategy; + private String contentLanguage; + public DefaultCxfRsBinding() { } @@ -264,13 +266,13 @@ public class DefaultCxfRsBinding implements CxfRsBinding, HeaderFilterStrategyAw contentType = MediaType.WILDCARD; } String contentEncoding = camelMessage.getHeader(Exchange.CONTENT_ENCODING, String.class); - if (webClient != null) { + if (webClient != null && contentLanguage == null) { try { Method getStateMethod = AbstractClient.class.getDeclaredMethod("getState"); getStateMethod.setAccessible(true); ClientState clientState = (ClientState) getStateMethod.invoke(webClient); if (clientState.getRequestHeaders().containsKey(HttpHeaders.CONTENT_LANGUAGE)) { - String contentLanguage = clientState.getRequestHeaders() + contentLanguage = clientState.getRequestHeaders() .getFirst(HttpHeaders.CONTENT_LANGUAGE); if (contentLanguage != null) { return Entity.entity(body, new Variant( @@ -279,9 +281,12 @@ public class DefaultCxfRsBinding implements CxfRsBinding, HeaderFilterStrategyAw } } } catch (Exception ex) { - LOG.warn("Cannot retrieve CONTENT_LANGUAGE from WebClient", ex); + LOG.warn( + "Cannot retrieve CONTENT_LANGUAGE from WebClient. This exception is ignored, and US Locale will be used", + ex); } } + contentLanguage = Locale.US.getLanguage(); return Entity.entity(body, new Variant(MediaType.valueOf(contentType), Locale.US, contentEncoding)); }