From 9f47f3182cd015c5246ec971d33d78e19ad2d39a Mon Sep 17 00:00:00 2001 From: Marco Zapletal Date: Tue, 24 Sep 2013 18:59:00 +0200 Subject: [PATCH] CAMEL-5771 IOHelper.getCharsetName() should lookup CHARSET_NAME in headers if exchange property is not set --- .../src/main/java/org/apache/camel/util/IOHelper.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/camel-core/src/main/java/org/apache/camel/util/IOHelper.java b/camel-core/src/main/java/org/apache/camel/util/IOHelper.java index 001d1e4f942fe..78f75c9ee7fdb 100644 --- a/camel-core/src/main/java/org/apache/camel/util/IOHelper.java +++ b/camel-core/src/main/java/org/apache/camel/util/IOHelper.java @@ -417,7 +417,8 @@ public static String getCharsetName(Exchange exchange) { } /** - * Gets the charset name if set as property {@link Exchange#CHARSET_NAME}. + * Gets the charset name if set as property or header {@link Exchange#CHARSET_NAME}. + * Notice: The lookup from the property has priority over the header * * @param exchange the exchange * @param useDefault should we fallback and use JVM default charset if no property existed? @@ -426,6 +427,9 @@ public static String getCharsetName(Exchange exchange) { public static String getCharsetName(Exchange exchange, boolean useDefault) { if (exchange != null) { String charsetName = exchange.getProperty(Exchange.CHARSET_NAME, String.class); + if (charsetName == null) { + charsetName = exchange.getIn().getHeader(Exchange.CHARSET_NAME, String.class); + } if (charsetName != null) { return IOHelper.normalizeCharset(charsetName); }