Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Deleted user
Level
0 / 0 points
Next:
badges earned

Your Points Tracker
Challenges
Leaderboard
  • Global
  • Feed

Badge for your thoughts?

You're enrolled in our new beta rewards program. Join our group to get the inside scoop and share your feedback.

Join group
Recognition
Give the gift of kudos
You have 0 kudos available to give
Who do you want to recognize?
Why do you want to recognize them?
Kudos
Great job appreciating your peers!
Check back soon to give more kudos.

Past Kudos Given
No kudos given
You haven't given any kudos yet. Share the love above and you'll see it here.

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

Caching CimFieldInfo fails with exception. Serialization issue. Edited

Hello guys.

I need to retrieve jira field information by projectKey/issueType/fieldId.

From I what I know there is no REST call which would let me return such information from Jira - I can only retrieve all fields for certain project/issue combination and then work with it by filtering data for certain fieldId. Like this:

https://jira.my.server/rest/api/latest/issue/createmeta?expand=projects.issuetypes.fields&projectKeys=MYPROJECT&issueIds=1

The problem arises when I need to get info for many fields from the same project/issue: in this case I run the same request many times and then filter it by fieldId. It is excessive and causes too much load at jira server.

So, I decided I will cache this call and save a list of jira fields:

@Cacheable(JIRA_FIELDS_BY_PROJECT_AND_ISSUETYPE)
public List<CimFieldInfo> getCimFieldInfos(String projectKey, Long issueTypeId) {
GetCreateIssueMetadataOptions metadataOptionsBuilder = new GetCreateIssueMetadataOptionsBuilder()
.withProjectKeys(projectKey)
.withIssueTypeIds(issueTypeId)
.withExpandedIssueTypesFields()
.build();

return new ArrayList<>(jiraRestClient.getIssueClient()
.getCreateIssueMetadata(metadataOptionsBuilder)
.claim()
.iterator().next()
.getIssueTypes()
.iterator().next()
.getFields()
.values());
}

And here is where I get hazelcast error:
Caused by: com.hazelcast.nio.serialization.HazelcastSerializationException: There is no suitable serializer for class com.atlassian.jira.rest.client.api.domain.CimFieldInfo

When I check CimFieldInfo I see that it doesn't implement Serializable. I think that is why Hazelcast complains.

One of the ways I see is to map CimFieldInfo to some custom serializable entity and cache it instead. But it will have too many fields and I don't want to bother with it.

Is there any other solution to this issue?

 

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Marketplace Apps & Integrations

New Cloud Apps Roundup - April 2021

Atlassian's marketplace partners have had a very productive start to 2021! Since our last roundup, our developer community has added over 160 new cloud apps to the Atlassian Marketplace to help you...

278 views 3 20
Read article

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