From 555181369dfc786b55dc51114a82fa1980673cb0 Mon Sep 17 00:00:00 2001 From: Greg Messner Date: Tue, 18 Sep 2018 19:40:20 -0700 Subject: [PATCH] Mods to fix cast class exception related to jira_issue_transition_id (#253). --- .../gitlab4j/api/services/JiraService.java | 26 +++++++++++++++++++ .../org/gitlab4j/api/TestServicesApi.java | 6 +++++ 2 files changed, 32 insertions(+) diff --git a/src/main/java/org/gitlab4j/api/services/JiraService.java b/src/main/java/org/gitlab4j/api/services/JiraService.java index b2a99b88..53d47456 100644 --- a/src/main/java/org/gitlab4j/api/services/JiraService.java +++ b/src/main/java/org/gitlab4j/api/services/JiraService.java @@ -1,5 +1,7 @@ package org.gitlab4j.api.services; +import java.util.Map; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; @@ -109,4 +111,28 @@ public class JiraService extends NotificationService { setJiraIssueTransitionId(jiraIssueTransitionId); return (this); } + + @Override + public void setProperties(Map properties) { + fixJiraIssueTransitionId(properties); + super.setProperties(properties); + } + + /** + * Make sure jiraIssueTransitionId is an integer and not an empty string. + * @param properties the Map holding the properties + */ + private void fixJiraIssueTransitionId(Map properties) { + + if (properties != null) { + Object jiraIssueTransitionId = properties.get(JIRA_ISSUE_TRANSITION_ID_PROP); + if (jiraIssueTransitionId instanceof String) { + if (((String)jiraIssueTransitionId).trim().isEmpty()) { + properties.put(JIRA_ISSUE_TRANSITION_ID_PROP, null); + } else { + properties.put(JIRA_ISSUE_TRANSITION_ID_PROP, Integer.valueOf((String)jiraIssueTransitionId)); + } + } + } + } } diff --git a/src/test/java/org/gitlab4j/api/TestServicesApi.java b/src/test/java/org/gitlab4j/api/TestServicesApi.java index 456f6945..fd3cf450 100644 --- a/src/test/java/org/gitlab4j/api/TestServicesApi.java +++ b/src/test/java/org/gitlab4j/api/TestServicesApi.java @@ -105,8 +105,14 @@ public class TestServicesApi { @Test public void testGetJiraService() throws GitLabApiException { + JiraService jiraService = gitLabApi.getServicesApi().getJiraService(testProject); assertNotNull(jiraService); + + // Make sure the jira_issue_transition_id is retrievable. + // This is testing that a class cast exception is not thrown. + Integer jiraIssueTransitionId = jiraService.getJiraIssueTransitionId(); + assertTrue(jiraIssueTransitionId == null || jiraIssueTransitionId != null); } @Test -- GitLab