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
Community moderators have prevented the ability to post new answers.
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
can you put a log message immediately after the removeIssueLink line...?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
> 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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.