http://jira.springframework.org/browse/BATCH-408 Use Semaphore instead of the crude synchronized block.