title: Camel Splitter Parallel Processing Array List - Concurrency Access Issue
body: <p>Using Camel to split an ArrayList and process each item in parallel up to 10 threads.
  Following is the config.
  Thread pool profile is set to max thread count =10.</p>
  
  <pre><code>&lt;camel:route id="ReportsRoute"&gt;
          &lt;camel:from uri="direct:processReportsChannel" /&gt;
          &lt;camel:to uri="bean:reportRepository?method=getPendingTransactions" /&gt;
          &lt;camel:split parallelProcessing="true" executorServiceRef="ReportThreadPoolProfile"&gt;
              &lt;camel:simple&gt;${body}&lt;/camel:simple&gt;
              &lt;camel:doTry&gt;
                  &lt;camel:to uri="direct:processReportChannel" /&gt;
                  &lt;camel:doCatch&gt;
                      &lt;camel:exception&gt;java.lang.Exception&lt;/camel:exception&gt;
                      &lt;camel:handled&gt;
                          &lt;camel:constant&gt;true&lt;/camel:constant&gt;
                      &lt;/camel:handled&gt;                        
                      &lt;camel:to uri="bean:ReportRepository?method=markAsFailed"/&gt;
                      &lt;camel:wireTap uri="direct:loggingAndNotificationChannel" /&gt;
                  &lt;/camel:doCatch&gt;
              &lt;/camel:doTry&gt;
          &lt;/camel:split&gt;
      &lt;/camel:route&gt;  
  </code></pre>
  
  <p><code>bean:reportRepository?method=getPendingTransactions</code> gets the ArrayList and passes to the Splitter. </p>
  
  <p><code>processReportChannel</code>is the processor that handles items.  </p>
  
  <p><strong>Problem:</strong>
  It is starting 10 threads when the job starts, but some threads are picking up the same item. For example, if I have item_no_1 through to 10 in the ArrayList, thread_no_1 and thread_no_2 or sometime more threads are picking up let's say item_no_2.  Is it because Array List is not thread safe and Splitter doesn't manage that?   </p>
  
  <p>I'm not an expert in this and need help to point out where the issue is.</p>