Uploaded image for project: 'OpenMRS Core'
  1. OpenMRS Core
  2. TRUNK-4500

Use of APIException not localized (mostly)

    Details

    • Complexity:
      Low

      Description

      Most of APIException usages (about 261) show a hardcoded english message instead of reading the corresponding localized resource.

      Wrong:
      throw new APIException("Preferred name cannot be null, voided or an index term");

      Right:
      throw new APIException(Context.getMessageSourceService().getMessage("Cohort.save.nameRequired", null,
      "Cohort name is required", Context.getLocale()));

      Proposal: add a new constructor to APIException with 2 arguments: message key and array of parameters. In its body call the Context.getMessageSourceService. Store both arguments as members (as long as the message), in order to allow unit tests to check for the resource key. I don't think it's necessary to provide a default message, if the resource does not exist in the context locale find it in english.

      Unit tests checking for english messages should be reviewed too. See OrderServiceTest for examples.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                rpuzdrowski Radosław Puzdrowski [X] (Inactive)
                Reporter:
                lluismf Lluis Martinez [X] (Inactive)
              • Votes:
                2 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 2 days, 5 hours
                  2d 5h