private OrcidMessage getLegacy500OrcidEntity(Throwable e) {
   OrcidMessage entity = new OrcidMessage();
   entity.setMessageVersion(OrcidMessage.DEFAULT_VERSION);
   entity.setErrorDesc(
       new ErrorDesc(
           StringUtils.isNotBlank(e.getMessage())
               ? e.getMessage()
               : messageSource.getMessage(
                   "apiError.unknown.exception", null, localeManager.getLocale())));
   return entity;
 }
  private OrcidError getOrcidError(int errorCode, int status, Throwable t) {
    Locale locale = localeManager.getLocale();
    OrcidError orcidError = new OrcidError();
    orcidError.setResponseCode(status);
    orcidError.setErrorCode(errorCode);
    orcidError.setMoreInfo(
        messageSource.getMessage("apiError." + errorCode + ".moreInfo", null, locale));
    Map<String, String> params = null;
    if (t instanceof ApplicationException) {
      params = ((ApplicationException) t).getParams();
    }
    // Returns an empty message if the key is not found
    String devMessage =
        messageSource.getMessage("apiError." + errorCode + ".developerMessage", null, "", locale);

    // Assign message from the exception
    if ("".equals(devMessage)) {
      devMessage = t.getClass().getCanonicalName();
      Throwable cause = t.getCause();
      String exceptionMessage = t.getLocalizedMessage();
      if (exceptionMessage != null) {
        devMessage += ": " + exceptionMessage;
      }

      if (cause != null) {
        String causeMessage = cause.getLocalizedMessage();
        if (causeMessage != null) {
          devMessage += " (" + causeMessage + ")";
        }
      }
      orcidError.setDeveloperMessage(devMessage);
    } else {
      orcidError.setDeveloperMessage(resolveMessage(devMessage, params));
    }

    orcidError.setUserMessage(
        resolveMessage(
            messageSource.getMessage("apiError." + errorCode + ".userMessage", null, locale),
            params));
    return orcidError;
  }