Uploaded image for project: 'Jira Software Data Center'
  1. Jira Software Data Center
  2. JSWSERVER-24900

Issue Creation fails within the portfolio plan if Required fields in the workflow are defined

    XMLWordPrintable

Details

    • 8.2
    • 5
    • Severity 2 - Major
    • 41
    • Hide

       

      Atlassian Update – 13 February 2023

      Dear Customers,

      Thank you for taking the time to file and comment on this issue. We realize it still occurs and impacts your organization. We are now working on multiple customer requests and on new features, so we have to postpone our resolution of this issue. We’ve decided to move this issue to our long-term backlog.

      The workaround for this bug is in the issue description.

      Please continue watching this ticket for future updates and changes in the timeline that impacts your work.

      Best regards

      Daniel Dudziak
      Senior Software Engineer

      Show
        Atlassian Update – 13 February 2023 Dear Customers, Thank you for taking the time to file and comment on this issue. We realize it still occurs and impacts your organization. We are now working on multiple customer requests and on new features, so we have to postpone our resolution of this issue. We’ve decided to move this issue to our long-term backlog. The workaround for this bug is in the issue description. Please continue watching this ticket for future updates and changes in the timeline that impacts your work. Best regards Daniel Dudziak Senior Software Engineer

    Description

      Issue Summary

      Issue Creation from within the JIRA portfolio plan fails if you have a required field configured in the create transition of the workflow. Please note that if we disable the improved planning interface, the same set up works fine.

      Steps to Reproduce

      Install JSU plugin just to add a required field validator. We can follow the below steps

      • Edit the workflow which is associated to the specific issuetype
      • Click on the Create transition, and click on Validators
      • Click on add validator
      • Select the radio button "Fields Required (JSU)" and click add
      • From the available fields, select Description and click "Add"
      • Publish the workflow

      1. Open an existing Portfolio plan
      2. Click on Create Issue link from the plan
      3. Provide the summary and select the Issue type as Story
      4. Click on Review Changes button to view the modified details
      5. Click on "Save Selected Changes in Jira" button
      6. Changes cannot be saved' notification is displayed to the user.

      Expected Results

      It will bring another dialog box requesting for other mandatory fields to fill in according to the issue type selected.

      Actual Results

      Error as seen in the screenshot

      The below exception is thrown in the xxxxxxx.log file:

      2020-06-18 18:52:11,241 http-nio-8851-exec-6 WARN admin 1132x7016x1 27281f 0:0:0:0:0:0:0:1 /rest/jpo/1.0/issues/commit [c.a.r.j.c.scenario.common.BaseScenarioEntityCommitService] Error in commit operation.
      com.atlassian.rm.jpo.env.issues.EnvironmentIssueCreateException: Specific error details: {description=Description is required.}
      	at com.atlassian.rm.jpo.env.issues.JiraIssueService.createIssue(JiraIssueService.java:166)
      	at com.atlassian.rm.jpo.core.scenario.issue.ScenarioIssueCreateAction.performApiOperation(ScenarioIssueCreateAction.java:88)
      	at com.atlassian.rm.jpo.core.scenario.issue.ScenarioIssueModificationAction.perform(ScenarioIssueModificationAction.java:284)
      	at com.atlassian.rm.common.persistence.transaction.Registry.run(Registry.java:35)
      	at com.atlassian.rm.jpo.core.scenario.issue.ScenarioIssueCommitService.add(ScenarioIssueCommitService.java:137)
      	at com.atlassian.rm.jpo.core.scenario.issue.ScenarioIssueCommitService.add(ScenarioIssueCommitService.java:47)
      	at com.atlassian.rm.jpo.core.scenario.common.BaseScenarioEntityCommitService.addInternal(BaseScenarioEntityCommitService.java:349)
      	at com.atlassian.rm.jpo.core.scenario.common.BaseRankableScenarioEntityCommitService.addInternal(BaseRankableScenarioEntityCommitService.java:68)
      	at com.atlassian.rm.jpo.core.scenario.common.BaseScenarioEntityCommitService.executeOperation(BaseScenarioEntityCommitService.java:428)
      	at com.atlassian.rm.jpo.core.scenario.common.BaseScenarioEntityCommitService.transactionalCommitInternal(BaseScenarioEntityCommitService.java:291)
      	at com.atlassian.rm.jpo.core.scenario.common.BaseScenarioEntityCommitService$2.apply(BaseScenarioEntityCommitService.java:257)
      	at com.atlassian.rm.jpo.core.scenario.common.BaseScenarioEntityCommitService$2.apply(BaseScenarioEntityCommitService.java:252)
      	at com.atlassian.rm.common.persistence.transaction.TransactionHandler.inTransaction(TransactionHandler.java:111)
      	at com.atlassian.rm.common.persistence.transaction.TransactionHandler.inNewTransaction(TransactionHandler.java:99)
      	at com.atlassian.rm.common.persistence.transaction.TransactionHandler.inNewTransaction(TransactionHandler.java:89)
      	at com.atlassian.rm.common.persistence.transaction.TransactionHandler.lambda$inDatabaseTransaction$3(TransactionHandler.java:69)
      	at com.atlassian.rm.common.persistence.DefaultDatabaseProvider.lambda$run$0(DefaultDatabaseProvider.java:24)
      	at com.atlassian.rm.common.persistence.env.JiraDatabaseProvider.lambda$execute$0(JiraDatabaseProvider.java:34)
      	at com.atlassian.rm.common.bridges.jira.persistence.JiraDatabaseProviderBridge76.execute(JiraDatabaseProviderBridge76.java:59)
      	at com.atlassian.rm.common.persistence.env.JiraDatabaseProvider.execute(JiraDatabaseProvider.java:34)
      	at com.atlassian.rm.common.persistence.DefaultDatabaseProvider.run(DefaultDatabaseProvider.java:24)
      	at com.atlassian.rm.common.persistence.transaction.TransactionHandler.inDatabaseTransaction(TransactionHandler.java:68)
      	at com.atlassian.rm.jpo.core.scenario.common.BaseScenarioEntityCommitService.commitInternal(BaseScenarioEntityCommitService.java:252)
      	at com.atlassian.rm.jpo.core.scenario.common.BaseScenarioEntityCommitService.commit(BaseScenarioEntityCommitService.java:143)
      	at com.atlassian.rm.jpo.rest.service.scenario.common.BaseScenarioCommitRestEndpoint.commit(BaseScenarioCommitRestEndpoint.java:43)
      	... 3 filtered
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	... 8 filtered
      	at com.atlassian.rm.common.rest.scope.RequestOperationScopeDispatcher.dispatch(RequestOperationScopeDispatcher.java:25)
      	at com.atlassian.rm.common.rest.permissions.AnnotationPermissionDispatcher.dispatch(AnnotationPermissionDispatcher.java:49)
      	at com.atlassian.rm.common.rest.permissions.AnnotationPermissionDispatcher.dispatch(AnnotationPermissionDispatcher.java:49)
      	at com.atlassian.rm.common.rest.mau.MauTrackingDispatcher.dispatch(MauTrackingDispatcher.java:28)
      	... 10 filtered
      	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:159)
      	... 1 filtered
      	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:69)
      	... 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:37)
      	... 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)
      	... 57 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:37)
      	... 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:213)
      	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:204)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:135)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:124)
      	... 4 filtered
      	at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37)
      	... 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)
      	... 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)
      
      2020-06-18 18:52:11,256 http-nio-8851-exec-6 WARN admin 1132x7016x1 27281f 0:0:0:0:0:0:0:1 /rest/jpo/1.0/issues/commit [c.a.r.j.c.scenario.issue.IssueScenarioEntityCommitExceptionHandler] Exception when trying to commit issue: Specific error details: {description=Description is required.}.
      2020-06-18 18:52:11,385 http-nio-8851-exec-22 ERROR admin 1132x7017x1 27281f 0:0:0:0:0:0:0:1 /rest/jpo/1.0/backlog/hiddenIssues [c.a.r.c.r.provider.exception.DefaultExceptionMapper] java.lang.NumberFormatException: For input string: "SCEN-0fbd194e-d5ce-48dd-8be1-846aeaf85fe9"
      com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: For input string: "SCEN-0fbd194e-d5ce-48dd-8be1-846aeaf85fe9"
      	at com.google.gson.internal.bind.TypeAdapters$8.read(TypeAdapters.java:263)
      	at com.google.gson.internal.bind.TypeAdapters$8.read(TypeAdapters.java:253)
      	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)
      	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:81)
      	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:60)
      	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:103)
      	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:196)
      	at com.google.gson.Gson.fromJson(Gson.java:810)
      	at com.google.gson.Gson.fromJson(Gson.java:775)
      	at com.atlassian.rm.common.basics.gson.GsonJsonTransformer.fromJson(GsonJsonTransformer.java:23)
      	at com.atlassian.rm.common.rest.provider.GsonJerseyProviderUtf8.readFrom(GsonJerseyProviderUtf8.java:72)
      	at com.atlassian.rm.common.rest.provider.GsonJerseyProviderUtf8.readFrom(GsonJerseyProviderUtf8.java:25)
      	at com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:490)
      	at com.sun.jersey.spi.container.AdaptingContainerRequest.getEntity(AdaptingContainerRequest.java:236)
      	... 5 filtered
      	at com.atlassian.rm.common.rest.scope.RequestOperationScopeDispatcher.dispatch(RequestOperationScopeDispatcher.java:25)
      	at com.atlassian.rm.common.rest.permissions.AnnotationPermissionDispatcher.dispatch(AnnotationPermissionDispatcher.java:49)
      	at com.atlassian.rm.common.rest.mau.MauTrackingDispatcher.dispatch(MauTrackingDispatcher.java:28)
      	... 11 filtered
      	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:159)
      	... 1 filtered
      	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:69)
      	... 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:37)
      	... 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)
      	... 57 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:37)
      	... 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:213)
      	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:204)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:135)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:124)
      	... 4 filtered
      	at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37)
      	... 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)
      	... 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)
      Caused by: java.lang.NumberFormatException: For input string: "SCEN-0fbd194e-d5ce-48dd-8be1-846aeaf85fe9"
      	at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
      	at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
      	at java.lang.Double.parseDouble(Double.java:538)
      	at com.google.gson.stream.JsonReader.nextLong(JsonReader.java:977)
      

      Workaround

      Two known workarounds
      1) Disable improved planning interface. The issue doesn't occur when this is disabled.
      2) The other workaround is to make the Field as Required from Field Configuration instead of setting it from the Workflow

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              amukkamala Aditya M
              Votes:
              33 Vote for this issue
              Watchers:
              48 Start watching this issue

              Dates

                Created:
                Updated: