Robert Half created CAMEL-14085:
-----------------------------------

             Summary: 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


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)

Reply via email to