View Revisions: Issue #5602

Summary 0005602: Parse exception of batch should remove it from staging
Revision 2022-11-28 19:37 by elong
Description When an update is read from a batch CSV, if the elements are less than the column count, it goes into a loop with a ParseException. It should remove the batch from staging with a ProtocolException and let the source node know to do the same.

ERROR [client-1] [ManageIncomingBatchListener] [client-1-dataloader-8] Failed to load batch server-26 java.lang.IllegalStateException: Invalid state while parsing csv data. The number of columns (2) reported for table 'MYTEST' doesn't match up with the token count (2) data: {update,1}
    at org.jumpmind.symmetric.io.data.reader.ProtocolDataReader.readNext(ProtocolDataReader.java:194)
    at org.jumpmind.symmetric.io.data.reader.ProtocolDataReader.nextData(ProtocolDataReader.java:367)
    at org.jumpmind.symmetric.io.data.DataProcessor.forEachDataInTable(DataProcessor.java:181)
    at org.jumpmind.symmetric.io.data.DataProcessor.forEachTableInBatch(DataProcessor.java:160)
    at org.jumpmind.symmetric.io.data.DataProcessor.process(DataProcessor.java:108)
    at org.jumpmind.symmetric.service.impl.DataLoaderService$LoadIntoDatabaseOnArrivalListener$2.call(DataLoaderService.java:1046)
    at org.jumpmind.symmetric.service.impl.DataLoaderService$LoadIntoDatabaseOnArrivalListener$2.call(DataLoaderService.java:1)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Revision 2022-11-28 19:33 by elong
Description When an update is read from a batch CSV, if the elements are less than the column count, it goes into a loop with a ParseException. It should remove the batch from staging with a ProtocolException and let the source node know to do the same.

INFO [client-1] [DefaultDatabaseWriter] [client-1-dataloader-4] Failed to process insert event in batch server-20 on channel 'default'.
Failed row data was: "1"
org.jumpmind.exception.ParseException: The (MYTEST) table's column count (2) does not match the data's column count (1)
    at org.jumpmind.symmetric.io.data.writer.AbstractDatabaseWriter.write(AbstractDatabaseWriter.java:149)
    at org.jumpmind.symmetric.io.data.writer.NestedDataWriter.write(NestedDataWriter.java:62)
    at org.jumpmind.symmetric.model.ProcessInfoDataWriter.write(ProcessInfoDataWriter.java:84)
    at org.jumpmind.symmetric.io.data.writer.NestedDataWriter.write(NestedDataWriter.java:62)
    at org.jumpmind.symmetric.io.data.writer.TransformWriter.write(TransformWriter.java:186)
    at org.jumpmind.symmetric.io.data.DataProcessor.forEachDataInTable(DataProcessor.java:194)
    at org.jumpmind.symmetric.io.data.DataProcessor.forEachTableInBatch(DataProcessor.java:160)
    at org.jumpmind.symmetric.io.data.DataProcessor.process(DataProcessor.java:108)
    at org.jumpmind.symmetric.service.impl.DataLoaderService$LoadIntoDatabaseOnArrivalListener$2.call(DataLoaderService.java:1046)
    at org.jumpmind.symmetric.service.impl.DataLoaderService$LoadIntoDatabaseOnArrivalListener$2.call(DataLoaderService.java:1)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)