[
https://issues.apache.org/jira/browse/FINERACT-2432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Adam Saghy resolved FINERACT-2432.
----------------------------------
Resolution: Fixed
> LoanProductDataValidator.validateLoanScheduleType() fails silently when
> loanScheduleType is null or has an invalid value
> ------------------------------------------------------------------------------------------------------------------------
>
> Key: FINERACT-2432
> URL: https://issues.apache.org/jira/browse/FINERACT-2432
> Project: Apache Fineract
> Issue Type: Improvement
> Components: Loan
> Affects Versions: 1.14.0
> Reporter: Kigenyi Wilfred
> Assignee: Yvana Kengne
> Priority: Minor
> Labels: beginner-friendly
> Fix For: 1.15.0
>
>
> The {{validateLoanScheduleType()}} method in {{LoanProductDataValidator}}
> does not handle null values properly, causing a {{NullPointerException}} when
> the {{loanScheduleType}} parameter is present in the JSON payload but has a
> null value.
> *Steps to reproduce*
> # Attempt to create a loan product with the following json payload:{
> "loanScheduleType": null,
> "transactionProcessingStrategyCode": "advanced-payment-allocation-strategy",
> ... [other required fields]
> }
> # The validation fails with a {{NullPointerException}} instead of gracefully
> handling the null value.
> *Current Behavior:*
> * The method {{validateLoanScheduleType()}} extracts the
> {{loanScheduleType}} value
> * It validates using {{.isOneOfEnumValues(LoanScheduleType.class)}}
> * It then immediately calls {{LoanScheduleType.valueOf(loanScheduleType)}}
> on lines 2803 and 2810 without checking if the value is null
> * This causes a {{NullPointerException}} when {{loanScheduleType}} is null
> *Expected Behavior:* Since {{loanScheduleType}} is an optional field (the
> method is only called when {{parameterExists()}} returns true), the validator
> should:
> # Validate the enum value if provided
> # Gracefully skip further validation logic if the value is null
> # Not throw a {{NullPointerException}}
> *Root Cause:* In file:
> {{fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/serialization/LoanProductDataValidator.java}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)