Uploaded image for project: 'Jira Service Management Data Center'
  1. Jira Service Management Data Center
  2. JSDSERVER-8418

Exporting an Object Type to Data Consistant CSV does not include all objects

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Low Low
    • None
    • Mindville - Pre Bundled

      Issue Summary

      When exporting objects to CSV (Data Consistent) the CSV will stop the export on any object containing a value in a Project Type Attribute.

      (Reproduced with a Super Admin User - so no permission issue here)

      Steps to Reproduce

      1. Create an Object Type with a Project Type Attribute
      2. Create a few objects, for the first 3 objects, do not populate the Project Attribute
      3. Create the 4th object with the Project Attribute Populated
      4. Create a 5th object with the Project Attribute empty
      5. Navigate to the Bulk Actions>Export Objects; select Data consistent in the export dialog, and execute
      6. review the CSV

      Expected Results

      5 Objects were exported, each is represented by a row in the CSV

      Actual Results

      only the first 3 objects are showing in the CSV.

      The below NPE is thrown in the atlassian-jira.log file:

      2021-06-21 13:16:24,853-0400 plugin-transaction-0 INFO      [c.a.jira.plugin.PluginTransactionListener] [plugin-transaction] numberStartEvents:867, numberEndEvents:867, numberSendEvents:537, numberEventsInTransactions:19977, numberOfPluginEnableEvents:3392021-06-21 13:16:36,169-0400 http-nio-8080-exec-22 ERROR      [o.a.c.c.C.[.[localhost].[/].[default]] Servlet.service() for servlet [default] in context with path [] threw exceptionjava.lang.NullPointerException	at com.riadalabs.jira.plugins.insight.services.imports.ObjectExportServiceImpl.convertProject(ObjectExportServiceImpl.java:294)	at com.riadalabs.jira.plugins.insight.services.imports.ObjectExportServiceImpl.convert(ObjectExportServiceImpl.java:232)	at com.riadalabs.jira.plugins.insight.services.imports.ObjectExportServiceImpl.lambda$writeObjects$2(ObjectExportServiceImpl.java:176)	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:545)	at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)	at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:438)	at com.riadalabs.jira.plugins.insight.services.imports.ObjectExportServiceImpl.writeObjects(ObjectExportServiceImpl.java:176)	at com.riadalabs.jira.plugins.insight.services.imports.ObjectExportServiceImpl.exportObjects(ObjectExportServiceImpl.java:131)	at com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objecttype.ObjectTypeExportResource.lambda$exportObjectTypeFilteredObjects$0(ObjectTypeExportResource.java:90)	at com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider.writeTo(StreamingOutputProvider.java:71)	at com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider.writeTo(StreamingOutputProvider.java:57)	at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:302)	... 5 filtered	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:160)	... 1 filtered	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:70)	... 32 filtered	at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55)	... 8 filtered	at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:59)	... 4 filtered	at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54)	... 3 filtered	at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:55)	... 8 filtered	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)	... 43 filtered	at com.atlassian.ratelimiting.internal.filter.RateLimitFilter.doFilter(RateLimitFilter.java:73)	... 17 filtered	at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)	... 1 filtered	at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)	... 16 filtered	at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:38)	... 19 filtered	at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)	... 5 filtered	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:215)	at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:136)	at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:89)	at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47)	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:206)	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:134)	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:123)	... 4 filtered	at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37)	... 8 filtered	at com.atlassian.ratelimiting.internal.filter.RateLimitPreAuthFilter.doFilter(RateLimitPreAuthFilter.java:71)	... 3 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)	... 26 filtered	at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)	... 25 filtered	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)	at java.lang.Thread.run(Thread.java:748)
      

      Workaround

      You may still export the objects in a User Friendly format.

            [JSDSERVER-8418] Exporting an Object Type to Data Consistant CSV does not include all objects

            No work has yet been logged on this issue.

              828a13f9a5a4 François Dénommée (Inactive)
              8cdc82c96fd5 Yinon Negev
              Affected customers:
              3 This affects my team
              Watchers:
              5 Start watching this issue

                Created:
                Updated: