spring batch compositeitemprocessor multithread partitioner mezcla datos

Hola a todos los del foro de java , alguno ha manejado Spring Batch , ya que tengo una aplicacion de batch que estoy usando particiones y CompositeItemProcessor, en un ambiente concurrente , solo que al retornar el resultado a la lista CopyOnWriteArrayList me llena la lista con los datos de otro thread , mezclandose la informacion en cada thread que se supone es multithreading, y cada thread escribira esos datos en un archivo de salida , como cada thread tiene su rango de busqueda de informacion ejemplo: thread1 1-10, thread2 11-20,...y asi sucesivamente, espero puedan orientarme , no he encontrado donde esta el problema,a continuacion pongo parte de codigo , gracias .

 
La configuracion de mi xml de spring batch es esta:
 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Nopalin

Nunca he utilizado spring

Nunca he utilizado spring batch asi que no puedo opinarte sobre como funciona. Lo que si puedo comentar es que ninguna variable en java es thread safe. Si al mismo dato que representa la variable deben accesar diferentes threads, lo mas recomendable es realizar el trabajo sobre esta variable usando synchronized (si no tambien pudieras encontrarte race conditions), si es la misma variable pero los datos son particulares de cada thread, entonces la variable la debes definir en un ThreadLocal.

uso de threadLocal en lugar de synchronized

Hola a todos , gracias @Nopalin por lo del threadlocal, se lo coloque ahora en el codigo ya no mezclo informacion y funciono, aqui coloco como ejemplo por si alguno le sirve o si acaso alguna otra sugerencia