It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage
  • Community
  • Products
  • Jira
  • Questions
  • how does the resolution date and time get set? We have conditions in the workflow to change the resolution status. This is also setting the resolution date and time. How can we prevent the date and time to set before the issue is marked fixed?

how does the resolution date and time get set? We have conditions in the workflow to change the resolution status. This is also setting the resolution date and time. How can we prevent the date and time to set before the issue is marked fixed?

how does the resolution date and time get set? We have conditions in the workflow to change the resolution status. This is also setting the resolution date and time. How can we prevent the date and time to set before the issue is marked fixed?

4 answers

1 accepted

1 vote
Answer accepted

You can't. Resolution date/time is not a real field, it is derived directly from the history, and the derivation is "the last time the resolution changed from <null> to <something>".

It's not stored in the database, only the index, and it's updated/corrected on every change to the issue.

I am assuming that by "resolution status" you do mean just "resolution" - status doesn't have anything to do with this, it's separate from resolution and I just want to make sure it's clear.

To work-around this, you need to create a custom field and set it yourself when you need it to be set.

That is just what I was afraid of....thanks for your input.

Like Kari Ringo likes this

Sorry it wasn't what you wanted to hear, but "resolution date" as implemented, is a very useful measure for many (most?) Jira users. To change the behaviour is a total pain, so I wouldn't bother, but adding a different metric is easy-ish, and far more helpful.

Like Curt Holley likes this

What if the resolution changed from <something> to <something else>> We'd expect the Resolved date to stay same, but it seems it is changing...

I am having the same issue. the thing is we are trying to use a third party time tracking app (Hubstaff) and they use the resolution date as an identifier for "active" or "inactive" issues, being active issues all with no resolution date.

Since we are using custom workflows and require resolution on certain transitions, the resolution field becomes mandatory from the creation of issues, so all our issues have a resolution date.

I strongly disagree that "resolution date as implementes is a very useful measure for many (most?) jira users", since it's not a field that can be updated and it's functioning seems completely independent from any action the user may take.

Is there a workaround for this?

Hi @Adaptavist_Nic,

 

I accept your answer but I can not explain how the csv importer do the magic at least in JIRA version 7.x . Actually if you map a column to Resolution and another one to Date Resolved you can even update an existing issue's resolution date. What's more there is no change in the issue's history at least on the UI.

 

Regards,

Istvan

Script Runner:

import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.IssueManager
import java.sql.Timestamp
 
ComponentManager componentManager = ComponentManager.getInstance()
IssueManager issueManager = componentManager.getIssueManager()
MutableIssue myIssue = issueManager.getIssueObject("SMS-1435")

Timestamp time = new Timestamp(2013, 03, 25, 0, 44, 0, 0) 
myIssue.setResolutionDate(time)
myIssue.store()

In case someone need this to work:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.IssueManager
import java.sql.Timestamp
def issueManager = ComponentAccessor.getIssueManager()
MutableIssue myIssue = issueManager.getIssueObject("JIRA-1")
Timestamp time = new Timestamp(119,7,5,13,41,0,0)
myIssue.setResolutionDate(time)
myIssue.store()

(119,7,5,13,41,0,0) = 2019/8/5 13:41

119 = 2019 because 2019-1900 = 119 (I don't know why. So for 1999 it will be 99)

7 = august ))))) I don't know why, but 0 is january

for day and time no magic needed

I tried the below instead of using the Timestap time. It also works.

Date newdate = new Date("12/12/2019");
myIssue.setResolutionDate(newdate.toTimestamp())

The issues might need a reindex after this to make searches work as expected?

Hi,
The resolveddate field has wrong date after using the above script. I used the timestamp (2017, 01, 29, 7, 0, 0, 0) for Jan 29, 2017, but after running the script, resolveddate changed to April 01, 2017. Can you verify below script and let me know if I'm using right syntax for timestamp?
 


import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.IssueManager
import java.sql.Timestamp
import com.atlassian.jira.component.ComponentAccessor
ComponentManager componentManager = ComponentManager.getInstance()
IssueManager issueManager = ComponentAccessor.getIssueManager()
MutableIssue myIssue = issueManager.getIssueObject("SMS-9165")
Timestamp time = new Timestamp(2017, 01, 29, 7, 0, 0, 0)
myIssue.setResolutionDate(time)
myIssue.store()

Suggest an answer

Log in or Sign up to answer
TAGS

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you