[
https://issues.apache.org/jira/browse/FINERACT-2980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18129751#comment-18129751
]
Aarti Panchal commented on FINERACT-2980:
-----------------------------------------
PR: https://github.com/apache/fineract/pull/6710
> Month-day parameters return HTTP 500 instead of a validation error when
> monthDayFormat or locale is missing
> -----------------------------------------------------------------------------------------------------------
>
> Key: FINERACT-2980
> URL: https://issues.apache.org/jira/browse/FINERACT-2980
> Project: Apache Fineract
> Issue Type: Bug
> Reporter: Aarti Panchal
> Priority: Major
>
> JsonParserHelper.extractMonthDayNamed passes monthDayFormat and locale
> straight to DateTimeFormatterBuilder. When a request sends a month-day value
> without monthDayFormat (or without locale), appendPattern(null) or
> toFormatter(null) throws a NullPointerException, which is not caught, so the
> API answers HTTP 500. For example, adding a savings account charge with
> feeOnMonthDay but no monthDayFormat:
> POST /savingsaccounts/\{id}/charges
> {"chargeId": 5, "amount": 10, "feeOnMonthDay": "15 March", "dateFormat": "dd
> MMMM yyyy", "locale": "en"}
> -> HTTP 500
> Expected: HTTP 400 with a validation error, the same way missing dateFormat /
> locale is reported for date parameters.
> This affects every endpoint that reads a month-day value through this helper:
> savings and deposit charges, savings products, charge definitions and
> standing instructions. Requests that send both monthDayFormat and locale are
> not affected. Happens on all databases.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)