Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.1.0
-
None
-
Windows Vista Business Service Pack 2, 32-bit
Description
I have a route that looks for a file in a directory => unmarshals the file using <CSV> => transforms the output from the unmarshal (which is List<List<String>>) to a List of data objects => passes the List of data objects to a processor which does the intelligent mapping of the input data to the output which is a List of Objects => passes the List of Objects to a <multicast> pipeline who's endpoints traverse the List of Objects and extract the data, that they are interested in, formatting the output in to a List of Map objects so that the <CSV> marshaller can marshal to a named file.
This is the route:
<route id="iq"> <from uri="file:/data/iq/inbound/"/> <unmarshal> <csv id="pipeCsvDataFormat"/> </unmarshal> <bean ref="iqTransform" method="doTransform"/> <to uri="bean:iqProcessor?method=process"/> <multicast parallelProcessing="true"> <pipeline> <to uri="bean:formatOutput?method=formatHeader"/> <marshal> <csv /> </marshal> <to uri="file:/data/iq/outbound/?fileName=Txn_Header.txt"/> </pipeline> <pipeline> <to uri="bean:formatOutput?method=formatLineHeader"/> <marshal> <csv /> </marshal> <to uri="file:/data/iq/outbound/?fileName=Line_Header.txt"/> </pipeline> </multicast> </route>
As expected, I get a correctly formatted file named Txn_Header.txt and a file named Line_Header.txt in the /outbound directory. So the routing seems to have worked fine.
The problem is that the original file does not get renamed in to the .camel subdirectory and so the file gets processed again and again.
If I remove the second endpoint in the multicast so that only the Txn_Header.txt file is produced then the original file does get renamed and the route ends successfully.