public void execute(Map transientVars, Map args, PropertySet ps) throws StoreException
{
MutableIssue issue = (MutableIssue) transientVars.get("issue");
WorkflowEntry entry = (WorkflowEntry) transientVars.get("entry");
SimpleStep step = (SimpleStep) ((WorkflowStore) transientVars.get("store")).findCurrentSteps(entry.getId()).get(0);
WorkflowDescriptor descriptor = (WorkflowDescriptor) transientVars.get("descriptor");
StepDescriptor stepDescriptor = descriptor.getStep(step.getStepId());
Status oldStatus = issue.getStatus();
Status newStatus = ComponentAccessor.getConstantsManager().getStatus((String) stepDescriptor.getMetaAttributes().get("jira.status.id"));
issue.setStatusId(newStatus.getId());
List changeItems = (List) transientVars.get("changeItems");
if (changeItems == null)
{
changeItems = new LinkedList();
}
String from = null;
String fromString = null;
if (oldStatus != null)
{
from = oldStatus.getId();
fromString = oldStatus.getName();
}
String to = newStatus.getId();
String toString = newStatus.getName();
changeItems.add(new ChangeItemBean(ChangeItemBean.STATIC_FIELD, IssueFieldConstants.STATUS, from, fromString, to, toString));
transientVars.put("changeItems", changeItems);
}