You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2010/09/15 10:00:31 UTC
svn commit: r997217 -
/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java
Author: davsclaus
Date: Wed Sep 15 08:00:30 2010
New Revision: 997217
URL: http://svn.apache.org/viewvc?rev=997217&view=rev
Log:
CAMEL-3121: Fixed issue with splitter in non streaming mode and Windows keep input stream locked, causing file on completion not being able to move/delete files splitted.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java?rev=997217&r1=997216&r2=997217&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java Wed Sep 15 08:00:30 2010
@@ -157,27 +157,14 @@ public class Splitter extends MulticastP
}
private Iterable<ProcessorExchangePair> createProcessorExchangePairsList(Exchange exchange, Object value) {
- List<ProcessorExchangePair> result;
- Integer collectionSize = CollectionHelper.size(value);
- if (collectionSize != null) {
- result = new ArrayList<ProcessorExchangePair>(collectionSize);
- } else {
- result = new ArrayList<ProcessorExchangePair>();
- }
+ List<ProcessorExchangePair> result = new ArrayList<ProcessorExchangePair>();
- int index = 0;
- Iterator<Object> iter = ObjectHelper.createIterator(value);
- while (iter.hasNext()) {
- Object part = iter.next();
- Exchange newExchange = exchange.copy();
- if (part instanceof Message) {
- newExchange.setIn((Message)part);
- } else {
- Message in = newExchange.getIn();
- in.setBody(part);
- }
- result.add(createProcessorExchangePair(index++, getProcessors().iterator().next(), newExchange));
+ // reuse iterable and add it to the result list
+ Iterable<ProcessorExchangePair> pairs = createProcessorExchangePairsIterable(exchange, value);
+ for (ProcessorExchangePair pair : pairs) {
+ result.add(pair);
}
+
return result;
}