I am having an issue when unmarshalling a message into a FixedLengthRecord. The feed I am reading from contains the message below
00000001500014400006874510000015000L X45011S**********SCPFI20110527RT It seems that the BindyFixedLengthFactory is not obtaining correctly the value for field9, it format the value 20110527 into a date, but it picks up 50001440 instead. I am using version 2.7.1, is FixedLength unmarshalling a supported feature? is this a known issue or I may be defining something incorrectly? Caused by: java.text.ParseException: Unparseable date: "50001440" The bean @FixedLengthRecord(length=71, paddingChar=' ') public class FixedLengthBean implements Serializable { @DataField(pos=1, length=15, pattern="000000000000000") private long field1; @DataField(pos=2, length=10, pattern="0000000000", required=true) private long field2; @DataField(pos=3, length=10, pattern="0000000000", required=true) private long field3; @DataField(pos=4, length=1, required=true) private char field4; @DataField(pos=5, length=10) private String field5; @DataField(pos=6, length=12, required=true) private String field6; @DataField(pos=7, length=1, required=true) private char field7; @DataField(pos=8, length=2) private String field8; @DataField(pos=9, length=8, pattern="yyyyMMdd") private Date field9; @DataField(pos=10, length=2) private String field10; ... Instantiating the bean Map<String, Object> model = new HashMap<String, Object>(); FixedLengthBean contract= new FixedLengthBean(); contract.setField1(15000144); contract.setField2(687451); contract.setField3(15000); contract.setField4('L'); contract.setField5("X45011S"); contract.setField6("**********SC"); contract.setField7('P'); contract.setField8("FI"); calendar.set(2011, 4, 27); contract.setField9( calendar.getTime() ); contract.setField10("RT"); ... The exception 9063 [Camel (camel-1) thread #0 - file:///c:/bindy.inbound/fixedlength] WARN org.apache.camel.component.file.GenericFileOnCompletion - Rollback file strategy: org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy@ee1ede for file: GenericFile[c:\bindy.inbound\fixedlength\test.txt] 9563 [Camel (camel-1) thread #0 - file:///c:/bindy.inbound/fixedlength] ERROR org.apache.camel.processor.DefaultErrorHandler - Failed delivery for exchangeId: ID-BAW0011-1744-1306485736643-0-32. Exhausted after delivery attempt: 1 caught: java.lang.IllegalArgumentException: Parsing error detected for field defined at the position/offset: 9, line: 1 java.lang.IllegalArgumentException: Parsing error detected for field defined at the position/offset: 9, line: 1 at org.apache.camel.dataformat.bindy.BindyFixedLengthFactory.bind(BindyFixedLengthFactory.java:229) at org.apache.camel.dataformat.bindy.fixed.BindyFixedLengthDataFormat.unmarshal(BindyFixedLengthDataFormat.java:141) at org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:56) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:269) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.Pipeline.process(Pipeline.java:125) at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:109) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:330) at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:157) at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: java.text.ParseException: Unparseable date: "50001440" at java.text.DateFormat.parse(DateFormat.java:337) at org.apache.camel.dataformat.bindy.format.DatePatternFormat.parse(DatePatternFormat.java:63) at org.apache.camel.dataformat.bindy.format.DatePatternFormat.parse(DatePatternFormat.java:29) at org.apache.camel.dataformat.bindy.BindyFixedLengthFactory.bind(BindyFixedLengthFactory.java:225) ... 36 more 9563 [Camel (camel-1) thread #0 - file:///c:/bindy.inbound/fixedlength] WARN org.apache.camel.component.file.GenericFileOnCompletion - Rollback file strategy: org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy@ee1ede for file: GenericFile[c:\bindy.inbound\fixedlength\test.txt] 10064 [Camel (camel-1) thread #0 - file:///c:/bindy.inbound/fixedlength] ERROR org.apache.camel.processor.DefaultErrorHandler - Failed delivery for exchangeId: ID-BAW0011-1744-1306485736643-0-34. Exhausted after delivery attempt: 1 caught: java.lang.IllegalArgumentException: Parsing error detected for field defined at the position/offset: 9, line: 1 java.lang.IllegalArgumentException: Parsing error detected for field defined at the position/offset: 9, line: 1 at org.apache.camel.dataformat.bindy.BindyFixedLengthFactory.bind(BindyFixedLengthFactory.java:229) at org.apache.camel.dataformat.bindy.fixed.BindyFixedLengthDataFormat.unmarshal(BindyFixedLengthDataFormat.java:141) at org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:56) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:269) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.Pipeline.process(Pipeline.java:125) at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:109) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:330) at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:157) at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: java.text.ParseException: Unparseable date: "50001440" at java.text.DateFormat.parse(DateFormat.java:337) at org.apache.camel.dataformat.bindy.format.DatePatternFormat.parse(DatePatternFormat.java:63) at org.apache.camel.dataformat.bindy.format.DatePatternFormat.parse(DatePatternFormat.java:29) at org.apache.camel.dataformat.bindy.BindyFixedLengthFactory.bind(BindyFixedLengthFactory.java:225) ... 36 more 10064 [Camel (camel-1) thread #0 - file:///c:/bindy.inbound/fixedlength] WARN org.apache.camel.component.file.GenericFileOnCompletion - Rollback file strategy: org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy@ee1ede for file: GenericFile[c:\bindy.inbound\fixedlength\test.txt] 10564 [Camel (camel-1) thread #0 - file:///c:/bindy.inbound/fixedlength] ERROR org.apache.camel.processor.DefaultErrorHandler - Failed delivery for exchangeId: ID-BAW0011-1744-1306485736643-0-36. Exhausted after delivery attempt: 1 caught: java.lang.IllegalArgumentException: Parsing error detected for field defined at the position/offset: 9, line: 1 java.lang.IllegalArgumentException: Parsing error detected for field defined at the position/offset: 9, line: 1 at org.apache.camel.dataformat.bindy.BindyFixedLengthFactory.bind(BindyFixedLengthFactory.java:229) at org.apache.camel.dataformat.bindy.fixed.BindyFixedLengthDataFormat.unmarshal(BindyFixedLengthDataFormat.java:141) at org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:56) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:269) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.Pipeline.process(Pipeline.java:125) at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:109) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:330) at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:157) at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: java.text.ParseException: Unparseable date: "50001440" at java.text.DateFormat.parse(DateFormat.java:337) at org.apache.camel.dataformat.bindy.format.DatePatternFormat.parse(DatePatternFormat.java:63) at org.apache.camel.dataformat.bindy.format.DatePatternFormat.parse(DatePatternFormat.java:29) at org.apache.camel.dataformat.bindy.BindyFixedLengthFactory.bind(BindyFixedLengthFactory.java:225) ... 36 more 10564 [Camel (camel-1) thread #0 - file:///c:/bindy.inbound/fixedlength] WARN org.apache.camel.component.file.GenericFileOnCompletion - Rollback file strategy: org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy@ee1ede for file: GenericFile[c:\bindy.inbound\fixedlength\test.txt] 11064 [Camel (camel-1) thread #0 - file:///c:/bindy.inbound/fixedlength] ERROR org.apache.camel.processor.DefaultErrorHandler - Failed delivery for exchangeId: ID-BAW0011-1744-1306485736643-0-38. Exhausted after delivery attempt: 1 caught: java.lang.IllegalArgumentException: Parsing error detected for field defined at the position/offset: 9, line: 1 java.lang.IllegalArgumentException: Parsing error detected for field defined at the position/offset: 9, line: 1 at org.apache.camel.dataformat.bindy.BindyFixedLengthFactory.bind(BindyFixedLengthFactory.java:229) at org.apache.camel.dataformat.bindy.fixed.BindyFixedLengthDataFormat.unmarshal(BindyFixedLengthDataFormat.java:141) at org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:56) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:269) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.Pipeline.process(Pipeline.java:125) at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:109) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:330) at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:157) at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: java.text.ParseException: Unparseable date: "50001440" at java.text.DateFormat.parse(DateFormat.java:337) at org.apache.camel.dataformat.bindy.format.DatePatternFormat.parse(DatePatternFormat.java:63) at org.apache.camel.dataformat.bindy.format.DatePatternFormat.parse(DatePatternFormat.java:29) at org.apache.camel.dataformat.bindy.BindyFixedLengthFactory.bind(BindyFixedLengthFactory.java:225) ... 36 more 11064 [Camel (camel-1) thread #0 - file:///c:/bindy.inbound/fixedlength] WARN org.apache.camel.component.file.GenericFileOnCompletion - Rollback file strategy: org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy@ee1ede for file: GenericFile[c:\bindy.inbound\fixedlength\test.txt] 27-May-2011 10:42:27 org.springframework.context.support.AbstractApplicationContext doClose -- View this message in context: http://camel.465427.n5.nabble.com/Issue-unmarshalling-Fixed-Length-message-date-tp4431276p4431276.html Sent from the Camel - Users mailing list archive at Nabble.com.