Fix possible null
This commit is contained in:
+2
@@ -221,6 +221,8 @@ public class ReadWriteNonCoreDataServiceImpl implements ReadWriteNonCoreDataServ
|
|||||||
rowSet = callFilteredPgSql(sql, valueFilter, filterColumnType);
|
rowSet = callFilteredPgSql(sql, valueFilter, filterColumnType);
|
||||||
} else if (databaseTypeResolver.isMySQL()) {
|
} else if (databaseTypeResolver.isMySQL()) {
|
||||||
rowSet = callFilteredMysql(sql, valueFilter, filterColumnType);
|
rowSet = callFilteredMysql(sql, valueFilter, filterColumnType);
|
||||||
|
} else {
|
||||||
|
throw new IllegalStateException("Database type is not supported");
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] resultColumnNames = resultColumns.split(",");
|
String[] resultColumnNames = resultColumns.split(",");
|
||||||
|
|||||||
+3
-14
@@ -133,17 +133,9 @@ public class LoanCOBApiFilter extends OncePerRequestFilter {
|
|||||||
|
|
||||||
private Long getLoanId(boolean isGlim, Supplier<Stream<String>> streamSupplier) {
|
private Long getLoanId(boolean isGlim, Supplier<Stream<String>> streamSupplier) {
|
||||||
if (!isGlim) {
|
if (!isGlim) {
|
||||||
if (streamSupplier.get().count() >= LOAN_ID_INDEX_IN_URL + 1) {
|
return streamSupplier.get().skip(LOAN_ID_INDEX_IN_URL).findFirst().map(Long::valueOf).orElse(null);
|
||||||
return Long.valueOf(streamSupplier.get().skip(LOAN_ID_INDEX_IN_URL).findFirst().get());
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (streamSupplier.get().count() >= GLIM_ID_INDEX_IN_URL + 1) {
|
return streamSupplier.get().skip(GLIM_ID_INDEX_IN_URL).findFirst().map(Long::valueOf).orElse(null);
|
||||||
return Long.valueOf(streamSupplier.get().skip(GLIM_ID_INDEX_IN_URL).findFirst().get());
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,9 +147,6 @@ public class LoanCOBApiFilter extends OncePerRequestFilter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isGlim(Supplier<Stream<String>> streamSupplier) {
|
private boolean isGlim(Supplier<Stream<String>> streamSupplier) {
|
||||||
if (streamSupplier.get().count() >= GLIM_STRING_INDEX_IN_URL + 1) {
|
return streamSupplier.get().skip(GLIM_STRING_INDEX_IN_URL).findFirst().map(s -> s.equals("glimAccount")).orElse(false);
|
||||||
return "glimAccount".equals(streamSupplier.get().skip(GLIM_STRING_INDEX_IN_URL).findFirst().get());
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -198,7 +198,7 @@ public class FloatingRateDataValidator {
|
|||||||
baseDataValidator.reset().parameter(IS_BASE_LENDING_RATE).value(isBaseLendingRate).notNull();
|
baseDataValidator.reset().parameter(IS_BASE_LENDING_RATE).value(isBaseLendingRate).notNull();
|
||||||
if (isBaseLendingRate == null) {
|
if (isBaseLendingRate == null) {
|
||||||
baseDataValidator.reset().parameter(IS_BASE_LENDING_RATE).trueOrFalseRequired(false);
|
baseDataValidator.reset().parameter(IS_BASE_LENDING_RATE).trueOrFalseRequired(false);
|
||||||
} else if (isBaseLendingRate && baseLendingRate != null && !baseLendingRate.getId().equals(floatingRateForUpdate.getId())) {
|
} else if (isBaseLendingRate && baseLendingRate != null && !baseLendingRate.getId().equals(floatingRateForUpdate.getId())) { // NOSONAR
|
||||||
baseDataValidator.reset().parameter(IS_BASE_LENDING_RATE).value(isBaseLendingRate).failWithCode("baselendingrate.duplicate",
|
baseDataValidator.reset().parameter(IS_BASE_LENDING_RATE).value(isBaseLendingRate).failWithCode("baselendingrate.duplicate",
|
||||||
"Base Lending Rate already exists");
|
"Base Lending Rate already exists");
|
||||||
}
|
}
|
||||||
@@ -220,7 +220,7 @@ public class FloatingRateDataValidator {
|
|||||||
isActive = floatingRateForUpdate.isActive();
|
isActive = floatingRateForUpdate.isActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (baseLendingRate != null && baseLendingRate.getId().equals(floatingRateForUpdate.getId()) && (!isBaseLendingRate || !isActive)) {
|
if (baseLendingRate != null && baseLendingRate.getId().equals(floatingRateForUpdate.getId()) && (!isBaseLendingRate || !isActive)) { // NOSONAR
|
||||||
isBLRModifiedAsNonBLR = true;
|
isBLRModifiedAsNonBLR = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -294,8 +294,9 @@ public class LoanChargeWritePlatformServiceImpl implements LoanChargeWritePlatfo
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (newChargeRefundTxn != null) {
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(newChargeRefundTxn.getLoan()));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanBalanceChangedBusinessEvent(newChargeRefundTxn.getLoan()));
|
||||||
|
}
|
||||||
businessEventNotifierService.notifyPostBusinessEvent(new LoanChargeRefundBusinessEvent(newChargeRefundTxn));
|
businessEventNotifierService.notifyPostBusinessEvent(new LoanChargeRefundBusinessEvent(newChargeRefundTxn));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -1075,7 +1076,7 @@ public class LoanChargeWritePlatformServiceImpl implements LoanChargeWritePlatfo
|
|||||||
BigDecimal chargeAmountPaid;
|
BigDecimal chargeAmountPaid;
|
||||||
BigDecimal chargeAmountRefunded = BigDecimal.ZERO;
|
BigDecimal chargeAmountRefunded = BigDecimal.ZERO;
|
||||||
MonetaryCurrency loanCurrency = loanCharge.getLoan().getCurrency();
|
MonetaryCurrency loanCurrency = loanCharge.getLoan().getCurrency();
|
||||||
if (loanCharge.isInstalmentFee()) {
|
if (loanCharge.isInstalmentFee() && installmentChargeEntry != null) {
|
||||||
final Integer installmentNumber = installmentChargeEntry.getRepaymentInstallment().getInstallmentNumber();
|
final Integer installmentNumber = installmentChargeEntry.getRepaymentInstallment().getInstallmentNumber();
|
||||||
chargeAmountPaid = installmentChargeEntry.getAmountPaid(loanCurrency).getAmount();
|
chargeAmountPaid = installmentChargeEntry.getAmountPaid(loanCurrency).getAmount();
|
||||||
for (LoanChargePaidBy loanChargePaidBy : loanCharge.getLoanChargePaidBySet()) {
|
for (LoanChargePaidBy loanChargePaidBy : loanCharge.getLoanChargePaidBySet()) {
|
||||||
|
|||||||
+17
@@ -99,4 +99,21 @@ public class ReadWriteNonCoreDataServiceImplTest {
|
|||||||
when(genericDataService.fillResultsetColumnHeaders("table")).thenReturn(Collections.emptyList());
|
when(genericDataService.fillResultsetColumnHeaders("table")).thenReturn(Collections.emptyList());
|
||||||
assertThrows(PlatformApiDataValidationException.class, () -> underTest.queryDataTable("table", "cf1", "vf1", "rc1,rc2"));
|
assertThrows(PlatformApiDataValidationException.class, () -> underTest.queryDataTable("table", "cf1", "vf1", "rc1,rc2"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInvalidDatabase() {
|
||||||
|
SqlRowSet sqlRS = Mockito.mock(SqlRowSet.class);
|
||||||
|
when(jdbcTemplate.queryForRowSet(eq("select rc1,rc2 from table where cf1 = ?"), any(Object[].class), any(int[].class)))
|
||||||
|
.thenReturn(sqlRS);
|
||||||
|
when(sqlRS.next()).thenReturn(true).thenReturn(false);
|
||||||
|
when(sqlRS.getObject(ArgumentMatchers.anyString())).thenReturn("value1").thenReturn("value2");
|
||||||
|
when(databaseTypeResolver.isPostgreSQL()).thenReturn(false);
|
||||||
|
when(databaseTypeResolver.isMySQL()).thenReturn(false);
|
||||||
|
ResultsetColumnHeaderData cf1 = ResultsetColumnHeaderData.detailed("cf1", "text", 10L, false, false, null, null);
|
||||||
|
ResultsetColumnHeaderData rc1 = ResultsetColumnHeaderData.detailed("rc1", "text", 10L, false, false, null, null);
|
||||||
|
ResultsetColumnHeaderData rc2 = ResultsetColumnHeaderData.detailed("rc2", "text", 10L, false, false, null, null);
|
||||||
|
when(genericDataService.fillResultsetColumnHeaders("table")).thenReturn(List.of(cf1, rc1, rc2));
|
||||||
|
|
||||||
|
assertThrows(IllegalStateException.class, () -> underTest.queryDataTable("table", "cf1", "vf1", "rc1,rc2"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user