Can you ost the camel route. Make sure you set bindy to fixed mode in the route

On Friday, May 27, 2011, cconesa <carlos.con...@rulefinancial.com> wrote:
> 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&lt;String, Object&gt; model = new HashMap&lt;String, Object&gt;();
>         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.
>
> --
> 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.

-- 
Claus Ibsen
-----------------
FuseSource
Email: cib...@fusesource.com
Web: http://fusesource.com
CamelOne 2011: http://fusesource.com/camelone2011/
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Reply via email to