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]

Reply via email to