JIRA Java API | Update Date/Time picker

Deleted user October 20, 2013

Hi All,

I am trying to update a Date/Time picker customfield, using JAVA.If I do code something as simple, as:

Object dateCustomField = issue.getCustomFieldValue((CustomField)ComponentAccessor.getCustomFieldManager().getCustomFieldObject(new Long(10391)));

updateValue(dateCustomField, issue, "2013-10-25 01:37:00.0");

An error is thrown in the logs:

java.lang.ClassCastException: java.sql.Timestamp cannot be cast to com.atlassian.jira.issue.fields.CustomField.

My question is: How can I update a Date/Time picker CF? I can not find any working documentation for JIRA 5.2.

I hope someone can help.

Cheers.

3 answers

1 accepted

2 votes
Answer accepted
Jobin Kuruvilla [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 20, 2013

What are you doing in updateValue? Make sure you pass a Timestamp object instead of CustomField.

1 vote
Henning Tietgens
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 20, 2013

The object parameter should be a Timestamp, which is a Date. So you first have to create a valid Timestamp object an pass this to updateValue().

0 votes
Deleted user October 21, 2013

Hi,

Thank you for your answers. I am not sure if I fully understand the approach. If I give a TS as a parameter, it won't compile, so I expect that I miss something.

I have found another approach on this page: https://answers.atlassian.com/questions/164789/groovy-post-function-clone-and-set-datepicker-customfield, but it doesn't update the value. It also does not throw errors in the logs.

MutableIssue mu = (MutableIssue) issue;
CustomField cf = ComponentAccessor.getCustomFieldManager().getCustomFieldObject(new Long(10391));
mu.setCustomFieldValue(cf, new Timestamp(new Date(2012,9,17).getTime()));
mu.store();
Henning Tietgens
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 21, 2013

You have to use IssueManager.updateIssue() and not MutableIssue.store() to store customfield changes. store() only saves direct members of the issue like summary.

The class of the object you pass with setCustomFieldValue must be the same as the class of the object you get from getCustomFieldValue for the same customfield.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events