FINERACT-995: Rewriting logic to remove call to rs.previous()

This commit is contained in:
Petri Tuomola
2020-06-20 22:32:06 +02:00
committed by Michael Vorburger ⛑️
parent f3862bca8b
commit 6438063a7f
2 changed files with 8 additions and 12 deletions
+1
View File
@@ -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)
@@ -438,19 +438,14 @@ public class LoanArrearsAgingServiceImpl implements LoanArrearsAgingService, Bus
while (rs.next()) {
Long loanId = rs.getLong("loanId");
List<LoanSchedulePeriodData> 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<LoanSchedulePeriodData> periodDatas = scheduleDate.get(loanId);
if (periodDatas == null) {
periodDatas = new ArrayList<>();
scheduleDate.put(loanId, periodDatas);
}
scheduleDate.put(loanId, periodDatas);
periodDatas.add(fetchLoanSchedulePeriodData(rs));
}
return scheduleDate;