On Tue, Jan 4, 2011 at 9:54 AM, rsteppac <ralf.steppac...@derivativepartners.com> wrote: > > Hello, > > I think there are two bugs in the Splitter component. > > Setting ‘streaming = "true"’ breaks error handling: > If an exception is thrown in a processor, the exception in the subExchange > is copied to the original exchange in MulticastProcessor line 554. In > Splitter line 140 the original exchange is copied, including the exception > that was thrown while processing the previous exchange. This prevents all > subsequent exchanges from being processed successfully. >
Can you try 2.6-SNAPSHOT as we have fixed some issues in relation to error handling and splitter/multicast. > Setting ‘streaming="true" parallelProcessing="true"’ consumes large amounts > of heap space for big original messages. E.g. 1024m of heap is not enough to > process an 80Mb with 500'000 lines, splitting it line by line. > The problem seems to be the ArrayList in MulticastProcessor line 224. It > contains a Future<Exchange> object for every token delivered by the > java.util.Scanner. The list is only cleared (going out of scope) after all > Future objects have been completed. > Hmm I was hoping that a Future instance would be a light weight object in Java, but had my hopes to high :) Back in the early days we did have some code using a CompletionService. We most likely need to introduce this back and have logic to aggregate the result as they fly in. Please create a ticket for this issue. > Maybe someone with more Camel experience than me (2 days so far) could > verify this before I open JIRA tickets for these issues? > > > Ralf > -- > View this message in context: > http://camel.465427.n5.nabble.com/2-Bugs-in-Splitter-Camel-2-5-0-tp3326727p3326727.html > Sent from the Camel - Users mailing list archive at Nabble.com. > -- Claus Ibsen ----------------- FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/