Uploaded image for project: 'Jira Cloud'
  1. Jira Cloud
  2. JRACLOUD-65190

JMWE "Set Field Value from Parent" throws NPE when set to copy Component field if parent doesn't have any components set

    XMLWordPrintable

Details

    Description

      Steps to reproduce

      1. Create a new JIRA project.
      2. Edit the workflow that's generated and add the "Set Field Value from Parent" post function to the initial Create transition, tick the "Add source value(s) to destination field" box.
      3. Create an issue with no components set.
      4. Create a subtask of that issue.

      Expected results

      The subtask is created normally.

      Actual results

      JIRA displays an error at the top of the Create Issue screen:

      We can't create this issue for you right now, it could be due to unsupported content you've entered into one or more of the issue fields. If this situation persists, contact your administrator as they'll be able to access more specific information in the log file.

      And this stack trace is shown in the logs:

      2016-08-22 11:16:25,338 http-nio-3010-exec-9 ERROR admin 676x88x1 u56vut 59.167.133.100 /secure/QuickCreateIssue.jspa [c.a.j.bc.issue.DefaultIssueService] Error creating issue:
      com.atlassian.jira.exception.CreateException
            at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:588)
            at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:494)
            at com.atlassian.jira.bc.issue.DefaultIssueService.create(DefaultIssueService.java:231)
            at com.atlassian.jira.bc.issue.DefaultIssueService.create(DefaultIssueService.java:200)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            ... 2 filtered
            at java.lang.reflect.Method.invoke(Method.java:498)
            at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
            at com.sun.proxy.$Proxy289.create(Unknown Source)
            ... 3 filtered
            at java.lang.reflect.Method.invoke(Method.java:498)
            at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:136)
            at com.sun.proxy.$Proxy289.create(Unknown Source)
            at com.atlassian.jira.quickedit.action.QuickCreateIssue.doExecute(QuickCreateIssue.java:308)
            ... 1 filtered
            at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:67)
            ... 7 filtered
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
            at com.atlassian.jira.servlet.WebExceptionCheckingServlet.delegate(WebExceptionCheckingServlet.java:86)
            at com.atlassian.jira.servlet.WebExceptionCheckingServlet.service(WebExceptionCheckingServlet.java:32)
            ... 30 filtered
            at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:31)
            ... 4 filtered
            at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:62)
            ... 17 filtered
            at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
            ... 47 filtered
            at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:81)
            ... 14 filtered
            at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:76)
            ... 1 filtered
            at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:74)
            ... 29 filtered
            at com.atlassian.studio.jira.homepage.CloudHomepageFilter$Action.lambda$nextInFilterChain$1(CloudHomepageFilter.java:110)
            at com.atlassian.studio.jira.homepage.CloudHomepageFilter.doFilter(CloudHomepageFilter.java:68)
            ... 20 filtered
            at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
            ... 5 filtered
            at com.atlassian.plugin.connect.plugin.auth.oauth2.DefaultSalAuthenticationFilter.doFilter(DefaultSalAuthenticationFilter.java:76)
            ... 3 filtered
            at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:110)
            ... 3 filtered
            at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:181)
            at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:142)
            at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:94)
            at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:64)
            at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:174)
            at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:130)
            at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:121)
            ... 4 filtered
            at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
            ... 8 filtered
            at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
            ... 4 filtered
            at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
            ... 29 filtered
            at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
            ... 7 filtered
            at com.atlassian.jira.util.zipkin.ZipkinTracingFilter.lambda$doFilter$1(ZipkinTracingFilter.java:53)
            at com.github.kristofa.brave.servlet.BraveServletFilter.doFilter(BraveServletFilter.java:59)
            at com.atlassian.jira.util.zipkin.ZipkinTracingFilter.doFilter(ZipkinTracingFilter.java:41)
            ... 22 filtered
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
            at java.lang.Thread.run(Thread.java:745)
      Caused by: com.atlassian.jira.workflow.WorkflowException
            at com.atlassian.jira.workflow.OSWorkflowManager.createIssue(OSWorkflowManager.java:871)
            at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:580)
            ... 304 more
      Caused by: java.lang.NullPointerException
            at com.atlassian.jira.bc.project.component.DefaultProjectComponentManager$1.get(DefaultProjectComponentManager.java:77)
            at com.atlassian.jira.util.collect.TransformingIterator.next(TransformingIterator.java:34)
            at com.atlassian.jira.util.collect.CollectionUtil.foreach(CollectionUtil.java:39)
            at com.atlassian.jira.util.collect.CollectionUtil.toList(CollectionUtil.java:65)
            at com.atlassian.jira.util.collect.CollectionUtil.transform(CollectionUtil.java:127)
            at com.atlassian.jira.util.collect.CollectionUtil.transform(CollectionUtil.java:148)
            at com.atlassian.jira.bc.project.component.DefaultProjectComponentManager.updateIssueValue(DefaultProjectComponentManager.java:209)
            at com.atlassian.jira.bc.project.component.DefaultProjectComponentManager.updateIssueProjectComponents(DefaultProjectComponentManager.java:197)
            at com.atlassian.jira.issue.fields.ComponentsSystemField.updateIssueValue(ComponentsSystemField.java:442)
            at com.atlassian.jira.issue.fields.ComponentsSystemField.updateValue(ComponentsSystemField.java:415)
            at com.atlassian.jira.workflow.OSWorkflowManager.createIssue(OSWorkflowManager.java:850)
            ... 305 more
      
      
      
      

      Notes

      • This only occurs when the "Add source value(s) to destination field" field in the post function is ticked.
      • The subtask is created but not as a subtask of the parent issue but as a regular standard issue (despite having a type of "Sub-task").
      • This bug only occurs in JIRA 1000.245.0 and later, it can't be reproduced in the previous production release (1000.217.2). This also occurs for Affects and Fix Versions, but not Labels.

      Attachments

        Activity

          People

            Unassigned Unassigned
            nmason Nick Mason
            Votes:
            3 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: