This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.7.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-3.7.x by this push:
     new c318228  CAMEL-16282: Fix VertxBufferConverter charset encoding (#5157)
c318228 is described below

commit c31822816cbe7c990ccdf5d86900dee41efce605
Author: James Netherton <[email protected]>
AuthorDate: Tue Mar 2 11:27:07 2021 +0000

    CAMEL-16282: Fix VertxBufferConverter charset encoding (#5157)
---
 .../component/vertx/http/VertxBufferConverter.java      |  4 ++--
 .../vertx/http/VertxHttpBufferConverterTest.java        | 17 ++++++++++-------
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git 
a/components/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxBufferConverter.java
 
b/components/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxBufferConverter.java
index 95d8517..6a88f54 100644
--- 
a/components/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxBufferConverter.java
+++ 
b/components/camel-vertx-http/src/main/java/org/apache/camel/component/vertx/http/VertxBufferConverter.java
@@ -40,7 +40,7 @@ public final class VertxBufferConverter {
     public static Buffer toBuffer(String string, Exchange exchange) {
         String charset = VertxHttpHelper.getCharsetFromExchange(exchange);
         if (ObjectHelper.isNotEmpty(charset)) {
-            Buffer.buffer(string, charset);
+            return Buffer.buffer(string, charset);
         }
         return Buffer.buffer(string);
     }
@@ -70,7 +70,7 @@ public final class VertxBufferConverter {
     public static String toString(Buffer buffer, Exchange exchange) {
         String charset = VertxHttpHelper.getCharsetFromExchange(exchange);
         if (ObjectHelper.isNotEmpty(charset)) {
-            buffer.toString(charset);
+            return buffer.toString(charset);
         }
         return buffer.toString();
     }
diff --git 
a/components/camel-vertx-http/src/test/java/org/apache/camel/component/vertx/http/VertxHttpBufferConverterTest.java
 
b/components/camel-vertx-http/src/test/java/org/apache/camel/component/vertx/http/VertxHttpBufferConverterTest.java
index 56fbbdc..4ae33cd 100644
--- 
a/components/camel-vertx-http/src/test/java/org/apache/camel/component/vertx/http/VertxHttpBufferConverterTest.java
+++ 
b/components/camel-vertx-http/src/test/java/org/apache/camel/component/vertx/http/VertxHttpBufferConverterTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.vertx.http;
 
 import java.io.InputStream;
+import java.nio.charset.Charset;
 
 import io.netty.buffer.Unpooled;
 import io.vertx.core.buffer.Buffer;
@@ -38,11 +39,11 @@ public class VertxHttpBufferConverterTest extends 
CamelTestSupport {
 
     @Test
     public void testStringToBufferWithEncoding() {
+        String encodedString = "Ťava dvojhrbá";
         Exchange exchange = ExchangeBuilder.anExchange(context)
-                .withHeader(Exchange.CONTENT_TYPE, "text/html; 
charset=iso-8859-4").build();
-        context.getTypeConverter().convertTo(Buffer.class, exchange, BODY);
-        Buffer buffer = context.getTypeConverter().convertTo(Buffer.class, 
BODY);
-        Assertions.assertEquals(BODY, buffer.toString());
+                .withHeader(Exchange.CONTENT_TYPE, "text/html; 
charset=iso-8859-2").build();
+        Buffer buffer = context.getTypeConverter().convertTo(Buffer.class, 
exchange, encodedString);
+        
Assertions.assertArrayEquals(encodedString.getBytes(Charset.forName("iso-8859-2")),
 buffer.getBytes());
     }
 
     @Test
@@ -72,10 +73,12 @@ public class VertxHttpBufferConverterTest extends 
CamelTestSupport {
 
     @Test
     public void testBufferToStringWithEncoding() {
+        String encodedString = "Ťava dvojhrbá";
         Exchange exchange = ExchangeBuilder.anExchange(context)
-                .withHeader(Exchange.CONTENT_TYPE, "text/html; 
charset=iso-8859-4").build();
-        String result = context.getTypeConverter().convertTo(String.class, 
exchange, Buffer.buffer(BODY));
-        Assertions.assertEquals(BODY, result);
+                .withHeader(Exchange.CONTENT_TYPE, "text/plain; 
charset=iso-8859-2").build();
+        String result = context.getTypeConverter()
+                .convertTo(String.class, exchange, 
Buffer.buffer(encodedString, "iso-8859-2"));
+        Assertions.assertEquals(encodedString, result);
     }
 
     @Test

Reply via email to