Hi,
In my service desk project, on issue creation workflow there is a post-function running a script.
The script includes a web service query . But usually the web service got connection timeout error. We controlled the network connections and permissions but cant find the root cause.
At the jira server when we write to browser this
http://****/****rest/service/get****/********
The response is to quick.
But when it is running in post-function script, it goes timeout.
Timeout set time is 20 seconds. I think it is enough.
"The script is for find the issue reporter's manager and add the manager for approve the issue."
this is the script :
import groovy.json.JsonSlurper;
import groovy.json.StreamingJsonBuilder;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.MutableIssue
import org.apache.commons.codec.binary.Base64;
import groovy.json.JsonBuilder;
import com.atlassian.jira.user.ApplicationUser;
import org.apache.log4j.Logger
import org.apache.log4j.Level
import com.atlassian.jira.issue.customfields.option.LazyLoadedOption;
def log = Logger.getLogger("*******")
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def userManager = ComponentAccessor.getUserManager();
//for debug
def issueManager = ComponentAccessor.getIssueManager()
def usermail = issue.getReporter().getEmailAddress();
def baseURL="";
def cField = customFieldManager.getCustomFieldObject("customfield_****")
def cFieldValue = issue.getCustomFieldValue(cField)
if(cFieldValue){
def selectedValue = ((LazyLoadedOption)cFieldValue).getValue()
if(selectedValue.equals("******")) {
baseURL = "http://*****/*****/********/rest/service/get****/" + usermail + "/2";
}else{
baseURL = "http://*****/***/***/********/rest/service/get***/" + usermail + "/1";
}
}else return;
//set Url
def URL url;
url = new URL(baseURL);
//create Json Builder
def data = new JsonBuilder();
//make sure custom field value is not empty
//connection settings
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.requestMethod = "GET";
//connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type","application/json;charset=utf-8");
connection.setUseCaches(false);
//connect
connection.connect();
//debug
log.setLevel(Level.DEBUG)
log.debug connection.getResponseCode();
log.debug connection.getResponseMessage();
log.debug connection.getInputStream();
DataInputStream wr = new DataInputStream(connection.getInputStream());
String asdf = wr.readLine()
log.debug asdf;
if(asdf!=null){
String[] list=asdf.split(",");
List<ApplicationUser> newApprovers = [];
for(String asdf1 : list){
if(asdf1 != null && asdf1 != ""){
asdf1 = asdf1.replace("@*********","").trim();
ApplicationUser user = userManager.getUserByName(asdf1);
if(user!=null){
newApprovers.add(user);
}
}
}
}
Could anyone help.? Thank You.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.