Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

error while deleting an issue link through groovy script

RamakrishnanH March 31, 2015

We are using a post function to delete an issue link based on change of a field value. But the removeIssueLink method is throwing the following error.

the lines of code

private int removeThisIssueLink(Issue sourceIssue, Issue destinationIssue, User user, linkTypeID){
    ComponentManager componentManager = ComponentManager.getInstance();
    IssueLinkManager linkMgr = componentManager.getIssueLinkManager();
    IssueLink issueLink = linkMgr.getIssueLink(sourceIssue.getId(), destinationIssue.getId(), linkTypeID);
   if (issueLink != null) {
      linkMgr.removeIssueLink(issueLink, user);
   }
}

we put log and all the values are getting passed correctly. The error happens at linkMgr.removeIssueLink line and issueLink and user are passed correctly.

 

the error

2015-03-31 04:02:23,814 http-bio-8080-exec-16 ERROR npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] The script failed : javax.script.ScriptException: javax.script.ScriptException: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'null' with class 'null' to class 'int'. Try 'java.lang.Integer' instead
2015-03-31 04:02:23,814 http-bio-8080-exec-16 DEBUG npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] Time taken: 673
2015-03-31 04:02:23,814 http-bio-8080-exec-16 ERROR npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyFunctionPlugin] Error executing post-function
javax.script.ScriptException: javax.script.ScriptException: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'null' with class 'null' to class 'int'. Try 'java.lang.Integer' instead
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:117)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:103)
at javax.script.AbstractScriptEngine.eval(Unknown Source)
at com.onresolve.jira.groovy.GroovyRunner.runFile(GroovyRunner.java:102)
at com.onresolve.jira.groovy.GroovyRunner.run(GroovyRunner.java:62)
at com.onresolve.jira.groovy.GroovyFunctionPlugin.execute(GroovyFunctionPlugin.java:35)
at com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:1050)
at com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1446)
at com.opensymphony.workflow.AbstractWorkflow.doAction(AbstractWorkflow.java:564)
at com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowActionInsideTxn(OSWorkflowManager.java:954)
at com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowAction(OSWorkflowManager.java:909)
at com.atlassian.jira.bc.issue.DefaultIssueService.transition(DefaultIssueService.java:450)
at com.atlassian.jira.web.action.issue.CommentAssignIssue.doExecute(CommentAssignIssue.java:192) <+1> (ActionSupport.java:165)
at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:87) <+7> (DefaultInterceptorChain.java:39) (NestedInterceptorChain.java:31) (ChainedInterceptor.java:16) (DefaultInterceptorChain.java:35) (GenericDispatcher.java:225) (GenericDispatcher.java:154) (JiraWebworkActionDispatcher.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) <+14> (ApplicationFilterChain.java:305) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (XContentTypeOptionsNoSniffFilter.java:22) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (HeaderSanitisingFilter.java:44) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66)
at com.atlassian.jira.tzdetect.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:39) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66)
at com.atlassian.jira.baseurl.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:38) <+8> (AbstractHttpFilter.java:31) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (ContextFilter.java:25) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66)
at com.atlassian.mywork.client.filter.ServingRequestsFilter.doFilter(ServingRequestsFilter.java:37) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66)
at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66)
at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:92) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66)
at com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56) <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66)
at com.atlassian.labs.botkiller.BotKillerFilter.doFilter(BotKillerFilter.java:36) <+23> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AccessLogFilter.java:103) (AccessLogFilter.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (XsrfTokenAdditionRequestFilter.java:54) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SiteMeshFilter.java:181) (SiteMeshFilter.java:85) (SitemeshPageFilter.java:123) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66)
at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+22> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SecurityFilter.java:234) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (TrustedApplicationsFilter.java:98) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (BaseLoginFilter.java:169) (JiraLoginFilter.java:70) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) (OAuthFilter.java:55) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66)
at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+13> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ProfilingFilter.java:99) (JIRAProfilingFilter.java:19) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractJohnsonFilter.java:71) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) <+10> (UrlRewriteFilter.java:394) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (GzipFilter.java:80) (GzipFilter.java:51) (JiraGzipFilter.java:55) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66)
at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) <+41> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (JWDSendRedirectFilter.java:25) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractCachingFilter.java:33) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractEncodingFilter.java:41) (AbstractHttpFilter.java:31) (PathMatchingEncodingFilter.java:49) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (JiraStartupChecklistFilter.java:78) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:87) (JiraFirstFilter.java:57) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (StandardWrapperValve.java:225) (StandardContextValve.java:123) (AuthenticatorBase.java:472) (StandardHostValve.java:168) (ErrorReportValve.java:98) (StandardEngineValve.java:118) (AccessLogValve.java:927) (CoyoteAdapter.java:407) (AbstractHttp11Processor.java:1001) (AbstractProtocol.java:585) (JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.script.ScriptException: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'null' with class 'null' to class 'int'. Try 'java.lang.Integer' instead
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:318)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:111)
... 184 more
Caused by: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'null' with class 'null' to class 'int'. Try 'java.lang.Integer' instead
at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToNumber(DefaultTypeTransformation.java:146)
at Script173.removeThisIssueLink(Script173.groovy:206)
at Script173.this$4$removeThisIssueLink(Script173.groovy) <+3>
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1054)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl$2.invokeMethod(GroovyScriptEngineImpl.java:299)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153)
at Script173.run(Script173.groovy:147)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:315)

Thanks

Ramakrishnan

1 answer

1 accepted

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

0 votes
Answer accepted
JamieA
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.
March 31, 2015

You are using a very old version of Script Runner. Nevertheless, something is null... can we see the version with your logging, and the log lines output.

RamakrishnanH March 31, 2015

Jamie Echlin, Thanks for your reply. Please find the details you asked for. We are using Script Runner version 2.1.15 and JIRA version 6.1.1. The code with debug log private int removeThisIssueLink(Issue sourceIssue, Issue destinationIssue, User user, linkTypeID) { ComponentManager componentManager = ComponentManager.getInstance(); IssueLinkManager linkMgr = componentManager.getIssueLinkManager(); log.debug("In removeIssueLink() method--sourceIssue.getId()-----"+sourceIssue.getId()); log.debug("In removeIssueLink() method--destinationIssue.getId()-----"+destinationIssue.getId()); log.debug("linkTypeID ---"+linkTypeID); log.debug("user ---"+user); IssueLink issueLink = linkMgr.getIssueLink(sourceIssue.getId(), destinationIssue.getId(), linkTypeID); log.debug("linkTypeID ---"+linkTypeID); log.debug("after ---linkMgr.getIssueLink()"); log.debug("issueLink ---"+issueLink); if (issueLink != null) { linkMgr.removeIssueLink(issueLink, user); } } Log 2015-03-31 04:02:23,799 http-bio-8080-exec-16 DEBUG npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] In removeIssueLink() method--sourceIssue.getId()-----32791 2015-03-31 04:02:23,799 http-bio-8080-exec-16 DEBUG npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] In removeIssueLink() method--destinationIssue.getId()-----29890 2015-03-31 04:02:23,799 http-bio-8080-exec-16 DEBUG npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] linkTypeID ---10003 2015-03-31 04:02:23,799 http-bio-8080-exec-16 DEBUG npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] user ---svc-eto:1 2015-03-31 04:02:23,800 http-bio-8080-exec-16 DEBUG npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] linkTypeID ---10003 2015-03-31 04:02:23,800 http-bio-8080-exec-16 DEBUG npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] after ---linkMgr.getIssueLink() 2015-03-31 04:02:23,800 http-bio-8080-exec-16 DEBUG npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] issueLink ---com.atlassian.jira.issue.link.IssueLinkImpl@ffffffe0 2015-03-31 04:02:23,814 http-bio-8080-exec-16 ERROR npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] The script failed : javax.script.ScriptException: javax.script.ScriptException: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'null' with class 'null' to class 'int'. Try 'java.lang.Integer' instead 2015-03-31 04:02:23,814 http-bio-8080-exec-16 DEBUG npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyRunner] Time taken: 673 2015-03-31 04:02:23,814 http-bio-8080-exec-16 ERROR npula 242x87001x1 10vmbax 10.200.77.10,10.200.77.44 /secure/CommentAssignIssue.jspa [onresolve.jira.groovy.GroovyFunctionPlugin] Error executing post-function

JamieA
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.
March 31, 2015

can you put a log message immediately after the removeIssueLink line...?

RamakrishnanH March 31, 2015

Jamie Echlin, we put a log message immediately after the removeIssueLink line and we noticed that line is getting printed correctly and the error message is getting printed only after that. So now it is clear the error is not due to removeIssueLink method. And we added a log message immediately after the calling line from where we can calling this method as follows. if (!found) { log.debug("Calling removeThisIssueLink for issue ------------------:::::"); removeThisIssueLink(issue, oldIssue, user, LINK_TYPE_ID); log.debug("called removeThisIssueLink for issue ------------------:::::"); } And log after the method call is not getting printed and error message comes. Any idea what could be the reason? Thanks for your help. Regards, Ramki

JamieA
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.
March 31, 2015

> we put a log message immediately after the removeIssueLink line and we noticed that line is getting printed correctly and the error message is getting printed only after that. So now it is clear the error is not due to removeIssueLink method Exactly, so you know you were looking in the wrong place. The problem is the signature of your method removeThisIssueLink... it says it returns int, but it doesn't actually return anything. So groovy tries to cast null to unboxed type "int", which can't be null. Change the signature of your method to be void, unless you actually want to return something.

RamakrishnanH March 31, 2015

Thanks a lot Jamie Echlin. Can't believe such a silly mistake.

TAGS
AUG Leaders

Atlassian Community Events