diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapExecutionContextDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapExecutionContextDao.java index cbb47c637..9261f8890 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapExecutionContextDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapExecutionContextDao.java @@ -1,17 +1,17 @@ package org.springframework.batch.core.repository.dao; -import java.util.HashMap; import java.util.Map; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.StepExecution; import org.springframework.batch.item.ExecutionContext; +import org.springframework.batch.support.transaction.TransactionAwareProxyFactory; public class MapExecutionContextDao implements ExecutionContextDao { - private static Map contextsByStepExecutionId = new HashMap(); + private static Map contextsByStepExecutionId = TransactionAwareProxyFactory.createTransactionalMap(); - private static Map contextsByJobExecutionId = new HashMap(); + private static Map contextsByJobExecutionId = TransactionAwareProxyFactory.createTransactionalMap(); public static void clear() { contextsByJobExecutionId.clear(); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobExecutionDao.java index d0c626088..138490e86 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobExecutionDao.java @@ -3,7 +3,6 @@ package org.springframework.batch.core.repository.dao; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -11,6 +10,7 @@ import java.util.Set; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobInstance; +import org.springframework.batch.support.transaction.TransactionAwareProxyFactory; import org.springframework.util.Assert; /** @@ -18,7 +18,7 @@ import org.springframework.util.Assert; */ public class MapJobExecutionDao implements JobExecutionDao { - private static Map executionsById = new HashMap(); + private static Map executionsById = TransactionAwareProxyFactory.createTransactionalMap(); private static long currentId = 0; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobInstanceDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobInstanceDao.java index 08d4175bf..ae6c416da 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobInstanceDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobInstanceDao.java @@ -4,12 +4,12 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; -import java.util.HashSet; import java.util.List; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobInstance; import org.springframework.batch.core.JobParameters; +import org.springframework.batch.support.transaction.TransactionAwareProxyFactory; import org.springframework.util.Assert; /** @@ -17,7 +17,7 @@ import org.springframework.util.Assert; */ public class MapJobInstanceDao implements JobInstanceDao { - private static Collection jobInstances = new HashSet(); + private static Collection jobInstances = TransactionAwareProxyFactory.createTransactionalSet(); private static long currentId = 0; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapStepExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapStepExecutionDao.java index b43bd53e4..8fba0163b 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapStepExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapStepExecutionDao.java @@ -18,13 +18,13 @@ package org.springframework.batch.core.repository.dao; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.batch.core.Entity; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.StepExecution; +import org.springframework.batch.support.transaction.TransactionAwareProxyFactory; import org.springframework.dao.OptimisticLockingFailureException; import org.springframework.util.Assert; @@ -33,7 +33,8 @@ import org.springframework.util.Assert; */ public class MapStepExecutionDao implements StepExecutionDao { - private static Map> executionsByJobExecutionId = new HashMap>(); + private static Map> executionsByJobExecutionId = TransactionAwareProxyFactory.createTransactionalMap(); + private static long currentId = 0; public static void clear() { @@ -47,7 +48,7 @@ public class MapStepExecutionDao implements StepExecutionDao { Map executions = executionsByJobExecutionId.get(stepExecution.getJobExecutionId()); if (executions == null) { - executions = new HashMap(); + executions = TransactionAwareProxyFactory.createTransactionalMap(); executionsByJobExecutionId.put(stepExecution.getJobExecutionId(), executions); } stepExecution.setId(new Long(currentId++));