this issue has been fixed in 2.12.2 with
https://issues.apache.org/jira/browse/CAMEL-6873

the charset name will be taken from the charset name property
(Excahnge.CHARSET_NAME) of the exchange.

regards, aki

2013/12/6 차정호 <jh...@barunmo.com>:
> Dear Camel developers.
>
>
>
> I have tested json marshaling / unmarshaling with gson library,
>
> and found there was charset assignment missing
>
> at org.apache.camel.component.gson.GsonDataFormat.java
>
> in Camel version 2.12.0
>
>
>
> The marshal and unmarshal methods should create a stream writer or reader
> with the charset "UTF-8”.
>
> If not, Gson fails when unmarshaling non ascii character json stream like
> {“name”: “차”}.
>
> This is the exception.
>
> com.google.gson.JsonSyntaxException:
> com.google.gson.stream.MalformedJsonException: Unterminated string at line
> 1 column 14
>
>            at com.google.gson.Gson.fromJson(Gson.java:818)
>
>            at com.google.gson.Gson.fromJson(Gson.java:741)
>
>            at
> org.apache.camel.component.gson.GsonDataFormat.unmarshal(GsonDataFormat.java
> :105)
>
> …
>
>
>
> So I suggest that GsonDataFormat.java be modified to have the charset
> assignment part like below.
>
>            …
>
>            public void marshal(Exchange exchange, Object graph,
> OutputStream stream) throws Exception {
>
>                      BufferedWriter writer = IOHelper.buffered(new
> OutputStreamWriter(stream, "UTF-8")); // <- modify here, please
>
>                      gsontoJson(graph, writer);
>
>                      writer.close();
>
>            }
>
>
>
>            …
>
>            public Object unmarshal(Exchange exchange, InputStream stream)
> throws Exception {
>
>                      BufferedReader reader = IOHelper.buffered(new
> InputStreamReader(stream, "UTF-8")); // <- modify here, please
>
>                      Object result = gson.fromJson(reader,
> this.unmarshalType);
>
>                     reader.close();
>
>                     return result;
>
> }
>
> See https://sites.google.com/site/gson/streaming
>
>
>
> Maybe I have misunderstood this, but check it please.
>
>
>
> Thanks.
>
>
>

Reply via email to