diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiServiceImpl.java index 6e61ee459..2ca9950c5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiServiceImpl.java @@ -63,7 +63,6 @@ public class BatchApiServiceImpl implements BatchApiService { private final CommandStrategyProvider strategyProvider; private final ResolutionHelper resolutionHelper; private final TransactionTemplate transactionTemplate; - private List checkList = new ArrayList<>(); /** * Constructs a 'BatchApiServiceImpl' with an argument of @@ -95,7 +94,6 @@ public class BatchApiServiceImpl implements BatchApiService { final List responseList = new ArrayList<>(requestList.size()); final List batchRequestNodes = this.resolutionHelper.getDependingRequests(requestList); - checkList.clear(); if(batchRequestNodes.isEmpty()) { final BatchResponse response = new BatchResponse(); ErrorInfo ex = ErrorHandler.handler(new ClientDetailsNotFoundException()); @@ -122,7 +120,6 @@ public class BatchApiServiceImpl implements BatchApiService { } }); - checkList = responseList; return responseList; } @@ -183,14 +180,15 @@ public class BatchApiServiceImpl implements BatchApiService { @Override public List handleBatchRequestsWithEnclosingTransaction(final List requestList, final UriInfo uriInfo) { - + List responseList = new ArrayList<>(); try { return this.transactionTemplate.execute(new TransactionCallback>() { @Override public List doInTransaction(TransactionStatus status) { try { - return handleBatchRequests(requestList, uriInfo); + responseList.addAll(handleBatchRequests(requestList, uriInfo)); + return responseList; } catch (RuntimeException ex) { ErrorInfo e = ErrorHandler.handler(ex); @@ -212,14 +210,13 @@ public class BatchApiServiceImpl implements BatchApiService { BatchResponse errResponse = new BatchResponse(); errResponse.setStatusCode(e.getStatusCode()); - for (BatchResponse res : checkList) { + for (BatchResponse res : responseList) { if (!res.getStatusCode().equals(200)) { errResponse.setBody("Transaction is being rolled back. First erroneous request: \n" + new Gson().toJson(res)); break; } } - checkList.clear(); List errResponseList = new ArrayList<>(); errResponseList.add(errResponse); @@ -229,13 +226,12 @@ public class BatchApiServiceImpl implements BatchApiService { BatchResponse errResponse = new BatchResponse(); errResponse.setStatusCode(e.getStatusCode()); - for (BatchResponse res : checkList) { + for (BatchResponse res : responseList) { if (!res.getStatusCode().equals(200)) { errResponse.setBody("Transaction is being rolled back. First erroneous request: \n" + new Gson().toJson(res)); break; } } - checkList.clear(); List errResponseList = new ArrayList<>(); errResponseList.add(errResponse);