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

            Marc Dacanay made changes -
            Labels New: ril
            Marc Dacanay made changes -
            Remote Link New: This issue links to "Internal ticket (Web Link)" [ 955287 ]
            SET Analytics Bot made changes -
            Support reference count Original: 2 New: 3
            Karan Ahuja made changes -
            Description Original: _emphasized text_h3. 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)
            h3. Steps to Reproduce
             # Create an Object Type with a Project Type Attribute
             # Create a few objects, for the first 3 objects, do not populate the Project Attribute
             # Create the 4th object with the Project Attribute Populated
             # Create a 5th object with the Project Attribute empty
             # Navigate to the Bulk Actions>Export Objects; select Data consistent in the export dialog, and execute
             # review the CSV

            h3. Expected Results

            5 Objects were exported, each is represented by a row in the CSV
            h3. Actual Results

            only the first 3 objects are showing in the CSV.

            The below NPE is thrown in the atlassian-jira.log file:
            {noformat}
            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)
            {noformat}
            h3. Workaround

            You may still export the objects in a User Friendly format.
            New: h3. 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)
            h3. Steps to Reproduce
             # Create an Object Type with a Project Type Attribute
             # Create a few objects, for the first 3 objects, do not populate the Project Attribute
             # Create the 4th object with the Project Attribute Populated
             # Create a 5th object with the Project Attribute empty
             # Navigate to the Bulk Actions>Export Objects; select Data consistent in the export dialog, and execute
             # review the CSV

            h3. Expected Results

            5 Objects were exported, each is represented by a row in the CSV
            h3. Actual Results

            only the first 3 objects are showing in the CSV.

            The below NPE is thrown in the atlassian-jira.log file:
            {noformat}
            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)
            {noformat}
            h3. Workaround

            You may still export the objects in a User Friendly format.
            Karan Ahuja made changes -
            Description Original: h3. 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)
            h3. Steps to Reproduce
             # Create an Object Type with a Project Type Attribute
             # Create a few objects, for the first 3 objects, do not populate the Project Attribute
             # Create the 4th object with the Project Attribute Populated
             # Create a 5th object with the Project Attribute empty
             # Navigate to the Bulk Actions>Export Objects; select Data consistent in the export dialog, and execute
             # review the CSV

            h3. Expected Results

            5 Objects were exported, each is represented by a row in the CSV
            h3. Actual Results

            only the first 3 objects are showing in the CSV.

            The below NPE is thrown in the atlassian-jira.log file:
            {noformat}
            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)
            {noformat}
            h3. Workaround

            You may still export the objects in a User Friendly format.
            New: _emphasized text_h3. 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)
            h3. Steps to Reproduce
             # Create an Object Type with a Project Type Attribute
             # Create a few objects, for the first 3 objects, do not populate the Project Attribute
             # Create the 4th object with the Project Attribute Populated
             # Create a 5th object with the Project Attribute empty
             # Navigate to the Bulk Actions>Export Objects; select Data consistent in the export dialog, and execute
             # review the CSV

            h3. Expected Results

            5 Objects were exported, each is represented by a row in the CSV
            h3. Actual Results

            only the first 3 objects are showing in the CSV.

            The below NPE is thrown in the atlassian-jira.log file:
            {noformat}
            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)
            {noformat}
            h3. Workaround

            You may still export the objects in a User Friendly format.
            SET Analytics Bot made changes -
            UIS Original: 4 New: 0
            SET Analytics Bot made changes -
            UIS New: 4
            François Dénommée (Inactive) made changes -
            Status Original: Needs Triage [ 10030 ] New: Gathering Impact [ 12072 ]
            François Dénommée (Inactive) made changes -
            Assignee New: François Dénommée [ 828a13f9a5a4 ]
            Bugfix Automation Bot made changes -
            Support reference count Original: 1 New: 2

              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: