diff --git a/.travis.yml b/.travis.yml index 92bd607d5..244228b4d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -73,6 +73,7 @@ script: # using "&&" instead of several "-" means that integrationTest does not run if test fails, # and Docker test does not run if integration test fails, which makes PR failure easier to understand. # @see https://docs.travis-ci.com/user/job-lifecycle/#customizing-the-build-phase +# NOTE: Sleep after docker-compose increased to 60 seconds as often Travis would fail to get Docker up in 30 seconds - ./gradlew --console=plain licenseMain licenseTest licenseIntegrationTest check && ./gradlew --console=plain integrationTest --fail-fast && sudo service mysql stop && docker-compose build && docker-compose up -d && sleep 30s && http --verify=no --timeout 240 --check-status get https://localhost:8443/fineract-provider/actuator/health && (( $(http --verify=no --timeout 30 --check-status --body get https://localhost:8443/fineract-provider/actuator/info | wc --chars) > 100 )) # We stop the mysql system service when running the Docker test to avoid port 3306 conflicts (unless we run the mysql in docker-compose on another port; req. FINERACT-773) # The fany /actuator/info test makes sure that has more than 100 characters of JSON to test that the git.properties worked (see FINERACT-983) diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java index 67e01ca28..895ac44f6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java @@ -438,19 +438,14 @@ public class LoanArrearsAgingServiceImpl implements LoanArrearsAgingService, Bus while (rs.next()) { Long loanId = rs.getLong("loanId"); - List periodDatas = new ArrayList<>(); - LoanSchedulePeriodData loanSchedulePeriodData = fetchLoanSchedulePeriodData(rs); - periodDatas.add(loanSchedulePeriodData); - while (rs.next()) { - Long tempLoanId = rs.getLong("loanId"); - if (loanId.equals(tempLoanId)) { - periodDatas.add(fetchLoanSchedulePeriodData(rs)); - } else { - rs.previous(); - break; - } + + List periodDatas = scheduleDate.get(loanId); + if (periodDatas == null) { + periodDatas = new ArrayList<>(); + scheduleDate.put(loanId, periodDatas); } - scheduleDate.put(loanId, periodDatas); + + periodDatas.add(fetchLoanSchedulePeriodData(rs)); } return scheduleDate;