Page tree
Skip to end of metadata
Go to start of metadata
import com.atlassian.jira.bc.issue.search.SearchService;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.config.properties.ApplicationProperties;
import com.atlassian.jira.event.type.EventDispatchOption;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.search.SearchException;
import com.atlassian.jira.issue.search.SearchResults;
import com.atlassian.jira.issue.worklog.Worklog;
import com.atlassian.jira.project.version.Version;
import com.atlassian.jira.user.ApplicationUser;
import com.atlassian.jira.web.bean.PagerFilter;
import com.atlassian.query.Query;

import java.sql.Timestamp;
import java.util.*;
List<Issue> issueList = new ArrayList<>();
    ApplicationUser user = ComponentAccessor.getUserManager().getUserByName("admin");
        try {
            IssueManager issueManager =ComponentAccessor.getIssueManager();
            SearchService searchService = ComponentAccessor.getComponentOfType(SearchService.class);
            SearchService.ParseResult parseResult = searchService.parseQuery(user, "resolutiondate is not EMPTY ");
            if (!parseResult.isValid()) {
               // return issueList;
            }
            Query query = parseResult.getQuery();
            SearchResults searchResults = searchService.search(user, query, PagerFilter.getUnlimitedFilter());
            issueList = searchResults.getResults();


            for (int i = 0; i < issueList.size(); i++) {
                log.debug("########## update "+i);
                MutableIssue mutableIssue  = issueManager.getIssueObject(issueList.get(i).getId());
                mutableIssue.setResolutionDate(new Timestamp(mutableIssue.getResolutionDate().getTime()-100*24*50*60*1000));
                issueManager.updateIssue(user,mutableIssue, EventDispatchOption.DO_NOT_DISPATCH,false);
            }

        } catch (SearchException e) {
            e.printStackTrace();
        }

  • No labels