@Override public UpdateValidationResult validateUpdate(final ApplicationUser user, final RemoteIssueLink remoteIssueLink) { final ErrorCollection errors = new SimpleErrorCollection(); final I18nHelper i18n = getI18n(user); validateLinkingEnabled(i18n, errors); Issue issue = null; if (!errors.hasAnyErrors()) { issue = validateIssueExists(remoteIssueLink, errors, i18n); } if (!errors.hasAnyErrors()) { validatePermissionToUpdate(user, issue, errors, i18n); } RemoteIssueLink found = null; if (!errors.hasAnyErrors()) { found = validateExists(remoteIssueLink.getId(), i18n, errors); } if (!errors.hasAnyErrors()) { validateMandatoryFields(remoteIssueLink, i18n, errors); validateFieldLengths(remoteIssueLink, i18n, errors); validateUrls(remoteIssueLink, i18n, errors); validateGlobalIdForUpdate(issue, found, remoteIssueLink, errors, i18n); } return new UpdateValidationResult((errors.hasAnyErrors() ? null : remoteIssueLink), errors); }