ok with the Date parameter to create a new instance, but are the other parameters different (getExportFileName() for example)? If not, some step-scoped writers are perhaps working different things to the same file.You can see that I pass a new Date() as a parameter and so the two jobs are different. By the time the code gets to the header the first thread has had its parameters replaced by the second.
are those beans (header, processor) step-scoped? If not, they should, otherwise the job instances would indeed interfere (they'd share the exact same instances). From you configuration, only the JdbcCursorItemReader is step-scoped.It is worth mentioning that I get the stepExecution in the header and processor by implementing StepExecutionListener and use the beforeStep(StepExecution stepExecution) to set it.