Dhanno98 opened a new pull request, #5490: URL: https://github.com/apache/fineract/pull/5490
## Description Implements [FINERACT-2489](https://issues.apache.org/jira/browse/FINERACT-2489). ## Problem While creating a Recurring Deposit Product using POST `/v1/recurringdepositproducts`, the request fails with HTTP 500 Internal Server Error when the `charts` parameter is omitted. ## Current Behavior The validation flow effectively requires `charts` as required. However, when it is missing a NullPointerException occurs inside `DepositProductDataValidator.validateChartsData()` before the validation framework can return a proper validation error. So the users receive a 500 response instead of a 400 along with a meaningful validation message. ## Why this happens Unlike optional parameters, the code path for `charts` does not check `parameterExists()` before validation, which indicates the parameter is mandatory. `DataValidatorBuilder.notNull().jsonArrayNotEmpty()` is already present but execution proceeds further and triggers NPE. ## What this PR does - Add a null guard to prevent NPE. - Allow the existing validator to correctly return a **400 Bad Request** with a proper validation message consistent with the rest of the mandatory fields when they are found missing. - Updates API documentation to move `charts` from Optional Fields to Mandatory Fields. ## Result after fix If `charts` is missing, the API now returns a consistent validation error, similar to other mandatory fields. No functional behavior is changed beyond improving error handling and documentation alignment. ## Checklist Please make sure these boxes are checked before submitting your pull request - thanks! - [ ] Write the commit message as per [our guidelines](https://github.com/apache/fineract/blob/develop/CONTRIBUTING.md#pull-requests) - [ ] Acknowledge that we will not review PRs that are not passing the build _("green")_ - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers. - [ ] Create/update [unit or integration tests](https://fineract.apache.org/docs/current/#_testing) for verifying the changes made. - [ ] Follow our [coding conventions](https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions). - [ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes - [ ] [This PR must not be a "code dump"](https://cwiki.apache.org/confluence/display/FINERACT/Pull+Request+Size+Limit). Large changes can be made in a branch, with assistance. Ask for help on the [developer mailing list](https://fineract.apache.org/#contribute). Your assigned reviewer(s) will follow our [guidelines for code reviews](https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
