diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java index 8c82ebf09..780057915 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java @@ -134,6 +134,11 @@ public class LoanCharge extends AbstractPersistableCustom { public static LoanCharge createNewFromJson(final Loan loan, final Charge chargeDefinition, final JsonCommand command) { final LocalDate dueDate = command.localDateValueOfParameterNamed("dueDate"); + if (dueDate == null) { + final String defaultUserMessage = "Loan charge is missing due date."; + throw new LoanChargeWithoutMandatoryFieldException("loanCharge", "dueDate", defaultUserMessage, chargeDefinition.getId(), + chargeDefinition.getName()); + } return createNewFromJson(loan, chargeDefinition, command, dueDate); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanEventApiJsonValidator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanEventApiJsonValidator.java index d28413033..3f70aec4a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanEventApiJsonValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanEventApiJsonValidator.java @@ -248,7 +248,8 @@ public final class LoanEventApiJsonValidator { baseDataValidator.reset().parameter("amount").value(amount).notNull().positiveAmount(); if (this.fromApiJsonHelper.parameterExists("dueDate", element)) { - this.fromApiJsonHelper.extractLocalDateNamed("dueDate", element); + final LocalDate dueDate = this.fromApiJsonHelper.extractLocalDateNamed("dueDate", element); + baseDataValidator.reset().parameter("dueDate").value(dueDate).notBlank(); } throwExceptionIfValidationWarningsExist(dataValidationErrors);