diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/jira/JiraRestApi.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/jira/JiraRestApi.java index c0561280133b..04006cbecf5b 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/jira/JiraRestApi.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/jira/JiraRestApi.java @@ -96,16 +96,10 @@ public abstract class JiraRestApi { return; } final String transitionsUrl = myRepository.getUrl() + REST_API_PATH_SUFFIX + "/issue/" + task.getId() + "/transitions"; - LOG.debug(String.format("Transition destination: %s, request: %s", state, requestBody)); + LOG.debug(String.format("Transition: %s -> %s, request: %s", task.getState(), state, requestBody)); final PostMethod method = new PostMethod(transitionsUrl); method.setRequestEntity(new StringRequestEntity(requestBody, "application/json", "utf-8")); - try { - myRepository.executeMethod(method); - } - catch (Exception e) { - LOG.warn(String.format("Transition destination: %s, server URL: %s", state, myRepository.getUrl()), e); - throw e; - } + myRepository.executeMethod(method); } @Nullable diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/jira/model/JiraStatus.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/jira/model/JiraStatus.java index ab3935f9861c..ee8a09d07e07 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/jira/model/JiraStatus.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/jira/model/JiraStatus.java @@ -17,14 +17,10 @@ package com.intellij.tasks.jira.model; import org.jetbrains.annotations.NotNull; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** * @author Mikhail Golubev */ public class JiraStatus { - private static final Pattern ID_PATTERN = Pattern.compile(".*/(\\d+)/?$"); private String id; private String self; private String name; @@ -38,15 +34,14 @@ public class JiraStatus { /** * Status id is necessary to determine issue status regardless of the language * used in JIRA installation. However it omitted in case of REST API version 2.0.alpha1. - * Anyway it still may be extracted from status URL which always presents. + * Anyway it still may be extracted from status URL which is always available. */ @NotNull public String getId() { if (id == null) { - Matcher m = ID_PATTERN.matcher(self); - if (m.matches()) { - return m.group(1); - } + String[] parts = self.split("/"); + assert parts.length > 0; + id = parts[parts.length - 1]; } return id; } diff --git a/plugins/tasks/tasks-tests/test/com/intellij/tasks/integration/JiraIntegrationTest.java b/plugins/tasks/tasks-tests/test/com/intellij/tasks/integration/JiraIntegrationTest.java index fc5ed559d3c2..645054013b07 100644 --- a/plugins/tasks/tasks-tests/test/com/intellij/tasks/integration/JiraIntegrationTest.java +++ b/plugins/tasks/tasks-tests/test/com/intellij/tasks/integration/JiraIntegrationTest.java @@ -18,6 +18,7 @@ package com.intellij.tasks.integration; import com.intellij.tasks.Task; import com.intellij.tasks.TaskManagerTestCase; import com.intellij.tasks.TaskState; +import com.intellij.tasks.config.TaskSettings; import com.intellij.tasks.jira.JiraRepository; import com.intellij.tasks.jira.JiraRepositoryType; import com.intellij.tasks.jira.JiraVersion; @@ -95,9 +96,11 @@ public class JiraIntegrationTest extends TaskManagerTestCase { Task task = myRepository.findTask(key); try { myRepository.setTaskState(task, TaskState.IN_PROGRESS); - assertEquals(myRepository.findTask(key).getState(), TaskState.IN_PROGRESS); + task = myRepository.findTask(key); + assertEquals(task.getState(), TaskState.IN_PROGRESS); myRepository.setTaskState(task, TaskState.RESOLVED); - assertEquals(myRepository.findTask(key).getState(), TaskState.RESOLVED); + task = myRepository.findTask(key); + assertEquals(task.getState(), TaskState.RESOLVED); myRepository.setTaskState(task, TaskState.REOPENED); assertEquals(myRepository.findTask(key).getState(), TaskState.REOPENED); } @@ -122,12 +125,12 @@ public class JiraIntegrationTest extends TaskManagerTestCase { assertEquals(new JiraVersion("6.1-OD-09-WN").toString(), "6.1.9"); assertEquals(new JiraVersion("5.0.6").toString(), "5.0.6"); assertEquals(new JiraVersion("4.4.5").toString(), "4.4.5"); - } @Override public void setUp() throws Exception { super.setUp(); + TaskSettings.getInstance().CONNECTION_TIMEOUT = 10000; myRepository = new JiraRepository(new JiraRepositoryType()); myRepository.setUrl(JIRA_5_TEST_SERVER_URL); myRepository.setUsername("buildtest");