You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2019/10/19 11:49:00 UTC
[jira] [Commented] (CAMEL-14085) Camel Bindy @FixedLengthRecord
cannot parse UTF-8 with multibyte characters
[ https://issues.apache.org/jira/browse/CAMEL-14085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16955150#comment-16955150 ]
Claus Ibsen commented on CAMEL-14085:
-------------------------------------
Are you able to build an unit test or sample project with a reproducer?
> Camel Bindy @FixedLengthRecord cannot parse UTF-8 with multibyte characters
> ---------------------------------------------------------------------------
>
> Key: CAMEL-14085
> URL: https://issues.apache.org/jira/browse/CAMEL-14085
> Project: Camel
> Issue Type: Bug
> Components: camel-bindy
> Affects Versions: 2.21.5
> Reporter: Robert Half
> Priority: Major
>
> We are using Camel Bindy to parse fixed length data.
> I came across the issue, that it fails to read data containing characters like ß, which takes 2 bytes. The character set is properly set on the exchange to UTF-8, the record length is 1568 bytes, but since there are 2xß characters, it throws the error:
> Size of the record: 1566 is not equal to the value provided in the model: 1568, StackTrace: java.lang.IllegalArgumentException: Size of the record: 1566 is not equal to the value provided in the model: 1568Size of the record: 1566 is not equal to the value provided in the model: 1568, StackTrace: java.lang.IllegalArgumentException: Size of the record: 1566 is not equal to the value provided in the model: 1568 at org.apache.camel.dataformat.bindy.fixed.BindyFixedLengthDataFormat.createModel(BindyFixedLengthDataFormat.java:295)
> here:
> BindyFixedLengthDataFormat#createModel
> {code:java}
> if ((myLine.length() < factory.recordLength()
> && !factory.isIgnoreMissingChars()) || (myLine.length() > factory.recordLength())) {
> throw new java.lang.IllegalArgumentException("Size of the record: " + myLine.length()
> + " is not equal to the value provided in the model: " + factory.recordLength());
> }{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)