diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/transaction/ResourcelessTransactionManager.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/transaction/ResourcelessTransactionManager.java index 8073206bc..19300b4a3 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/transaction/ResourcelessTransactionManager.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/transaction/ResourcelessTransactionManager.java @@ -16,7 +16,8 @@ package org.springframework.batch.support.transaction; -import java.util.Stack; +import java.util.ArrayList; +import java.util.List; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionException; @@ -42,17 +43,17 @@ public class ResourcelessTransactionManager extends AbstractPlatformTransactionM @Override protected Object doGetTransaction() throws TransactionException { Object transaction = new ResourcelessTransaction(); - Stack resources; + List resources; if (!TransactionSynchronizationManager.hasResource(this)) { - resources = new Stack(); + resources = new ArrayList(); TransactionSynchronizationManager.bindResource(this, resources); } else { @SuppressWarnings("unchecked") - Stack stack = (Stack) TransactionSynchronizationManager.getResource(this); + List stack = (List) TransactionSynchronizationManager.getResource(this); resources = stack; } - resources.push(transaction); + resources.add(transaction); return transaction; } @@ -66,8 +67,7 @@ public class ResourcelessTransactionManager extends AbstractPlatformTransactionM @Override protected boolean isExistingTransaction(Object transaction) throws TransactionException { if (TransactionSynchronizationManager.hasResource(this)) { - @SuppressWarnings("unchecked") - Stack stack = (Stack) TransactionSynchronizationManager.getResource(this); + List stack = (List) TransactionSynchronizationManager.getResource(this); return stack.size() > 1; } return ((ResourcelessTransaction) transaction).isActive(); @@ -79,9 +79,7 @@ public class ResourcelessTransactionManager extends AbstractPlatformTransactionM @Override protected void doCleanupAfterCompletion(Object transaction) { - @SuppressWarnings("unchecked") - Stack list = (Stack) TransactionSynchronizationManager.getResource(this); - Stack resources = list; + List resources = (List) TransactionSynchronizationManager.getResource(this); resources.clear(); TransactionSynchronizationManager.unbindResource(this); ((ResourcelessTransaction) transaction).clear();