/**
   * Known limitations: - Jira api does not allow an issue type to be update (WTF?) - Jira api does
   * not allow project to be changed
   */
  @Override
  public boolean updateIssue(Issue issue) throws NotFoundException, AphroditeException {
    checkHost(issue.getURL());

    try {
      net.rcarz.jiraclient.Issue jiraIssue = getIssue(issue);
      net.rcarz.jiraclient.Issue.FluentUpdate update =
          WRAPPER.issueToFluentUpdate(issue, jiraIssue.update());
      update.execute();
      if (!hasSameIssueStatus(issue, jiraIssue)) {
        String transition = getJiraTransition(issue, jiraIssue);
        jiraIssue.transition().execute(transition);
      }
      addNewIssueLinks(issue, jiraIssue);
      removeOldIssueLinks(issue, jiraIssue);
      return true;
    } catch (JiraException e) {
      throw new AphroditeException(getUpdateErrorMessage(issue, e), e);
    }
  }