-
Bug
-
Resolution: Fixed
-
Medium (View bug fix roadmap)
-
8.20.0, 9.4.17, 9.12.4
-
8.2
-
11
-
Severity 2 - Major
-
23
-
-
Issue Summary
Issue Creation from within the Advanced Roadmap plan fails if a required field is configured in the ‘create’ transition of the Workflows using a validator from the JSU Automation Suite for Jira Workflows 3rd-party add-on.
Steps to Reproduce
Preliminary steps
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
Steps to replicate the bug
- Open an existing Portfolio plan
- Click on Create Issue link from the plan
- Provide the summary and select the Issue type as Story
- Click on Review Changes button to view the modified details
- Click on "Save Selected Changes in Jira" button
- 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
Instead of using the JSU workflow validator to make the field required, make it required via Jira's native Field Configuration feature.
- is related to
-
JRACLOUD-88370 Cannot create issues when required fields are configured in workflow validator rather than field configuration
-
- Closed
-
-
JSWSERVER-26125 The "Set Required Field" screen does not take into account mandatory fields from ScriptRunner behaviors
- Gathering Interest
- relates to
-
JSWSERVER-25034 Create issue with field required does not save the changes
-
- Long Term Backlog
-
-
JSWSERVER-26125 The "Set Required Field" screen does not take into account mandatory fields from ScriptRunner behaviors
- Gathering Interest
-
JPO-14530 Failed to load
-
WCAT-530 Loading...
- resolves
-
JSWSERVER-26255 Set Required Fields screen does not show and the screen freezes when committing changes to Advanced Roadmaps Plans
-
- Long Term Backlog
-
- links to
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
[JSWSERVER-24900] Issue Creation fails within the plan if workflow validators from the JSU add-on are used
Description |
Original:
h3. Issue Summary
Issue Creation from within the Advanced Roadmap plan fails if a required field is configured in the ‘create’ transition of the Workflows using a validator from the [JSU Automation Suite for Jira Workflows|https://marketplace.atlassian.com/apps/5048/jsu-automation-suite-for-jira-workflows?tab=overview&hosting=cloud] 3rd-party add-on. h3. Steps to Reproduce h4. Preliminary steps 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 h4. Steps to replicate the bug # Open an existing Portfolio plan # Click on Create Issue link from the plan # Provide the summary and select the Issue type as Story # Click on Review Changes button to view the modified details # Click on "Save Selected Changes in Jira" button # Changes cannot be saved' notification is displayed to the user. h3. Expected Results It will bring another dialog box requesting for other mandatory fields to fill in according to the issue type selected. h3. Actual Results Error as seen in the screenshot The below exception is thrown in the xxxxxxx.log file: {noformat} 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) {noformat} {noformat} 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) {noformat} h3. Workaround Two known workarounds *For the required field validator on the transition* 1) Disable improved planning interface. The issue doesn't occur when this is disabled. (not available 2) The other workaround is to make the Field as Required from Field Configuration instead of setting it from the Workflow *For a standard required field on the screen without use of any 3rd party validators* * You can (if possible) add the field to the plan interface and set the field there. Then there is no need for the popup as the field is already set. |
New:
h3. Issue Summary
Issue Creation from within the Advanced Roadmap plan fails if a required field is configured in the ‘create’ transition of the Workflows using a validator from the [JSU Automation Suite for Jira Workflows|https://marketplace.atlassian.com/apps/5048/jsu-automation-suite-for-jira-workflows?tab=overview&hosting=cloud] 3rd-party add-on. h3. Steps to Reproduce h4. Preliminary steps 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 h4. Steps to replicate the bug # Open an existing Portfolio plan # Click on Create Issue link from the plan # Provide the summary and select the Issue type as Story # Click on Review Changes button to view the modified details # Click on "Save Selected Changes in Jira" button # Changes cannot be saved' notification is displayed to the user. h3. Expected Results It will bring another dialog box requesting for other mandatory fields to fill in according to the issue type selected. h3. Actual Results Error as seen in the screenshot The below exception is thrown in the xxxxxxx.log file: {noformat} 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) {noformat} {noformat} 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) {noformat} h3. Workaround Instead of using the JSU workflow validator to make the field required, make it required via [Jira's native Field Configuration|https://confluence.atlassian.com/adminjiraserver/specifying-field-behavior-938847255.html] feature. |
Description |
Original:
h3. 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. This can also happen if there isn't a validator on the create step, but the field isn't populated within the Plan interface (no 3rd party app). The window to populate the missing required field still doesn't pop up. h3. 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. h3. Expected Results It will bring another dialog box requesting for other mandatory fields to fill in according to the issue type selected. h3. Actual Results Error as seen in the screenshot The below exception is thrown in the xxxxxxx.log file: {noformat} 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) {noformat} {noformat} 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) {noformat} h3. Workaround Two known workarounds *For the required field validator on the transition* 1) Disable improved planning interface. The issue doesn't occur when this is disabled. (not available 2) The other workaround is to make the Field as Required from Field Configuration instead of setting it from the Workflow *For a standard required field on the screen without use of any 3rd party validators* * You can (if possible) add the field to the plan interface and set the field there. Then there is no need for the popup as the field is already set. |
New:
h3. Issue Summary
Issue Creation from within the Advanced Roadmap plan fails if a required field is configured in the ‘create’ transition of the Workflows using a validator from the [JSU Automation Suite for Jira Workflows|https://marketplace.atlassian.com/apps/5048/jsu-automation-suite-for-jira-workflows?tab=overview&hosting=cloud] 3rd-party add-on. h3. Steps to Reproduce h4. Preliminary steps 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 h4. Steps to replicate the bug # Open an existing Portfolio plan # Click on Create Issue link from the plan # Provide the summary and select the Issue type as Story # Click on Review Changes button to view the modified details # Click on "Save Selected Changes in Jira" button # Changes cannot be saved' notification is displayed to the user. h3. Expected Results It will bring another dialog box requesting for other mandatory fields to fill in according to the issue type selected. h3. Actual Results Error as seen in the screenshot The below exception is thrown in the xxxxxxx.log file: {noformat} 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) {noformat} {noformat} 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) {noformat} h3. Workaround Two known workarounds *For the required field validator on the transition* 1) Disable improved planning interface. The issue doesn't occur when this is disabled. (not available 2) The other workaround is to make the Field as Required from Field Configuration instead of setting it from the Workflow *For a standard required field on the screen without use of any 3rd party validators* * You can (if possible) add the field to the plan interface and set the field there. Then there is no need for the popup as the field is already set. |
Summary | Original: Issue Creation fails within the plan if Required fields in the workflow are defined | New: Issue Creation fails within the plan if workflow validators from the JSU add-on are used |
Fix Version/s | New: 9.17.5 [ 109417 ] | |
Fix Version/s | New: 9.12.19 [ 110409 ] |
Link | New: This issue relates to JSWSERVER-26125 [ JSWSERVER-26125 ] |
Link | New: This issue resolves JSWSERVER-26255 [ JSWSERVER-26255 ] |
Description |
Original:
h3. 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. h3. 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. h3. Expected Results It will bring another dialog box requesting for other mandatory fields to fill in according to the issue type selected. h3. Actual Results Error as seen in the screenshot The below exception is thrown in the xxxxxxx.log file: {noformat} 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) {noformat} {noformat} 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) {noformat} h3. Workaround Two known workarounds 1) Disable improved planning interface. The issue doesn't occur when this is disabled. (not available 2) The other workaround is to make the Field as Required from Field Configuration instead of setting it from the Workflow |
New:
h3. 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. This can also happen if there isn't a validator on the create step, but the field isn't populated within the Plan interface (no 3rd party app). The window to populate the missing required field still doesn't pop up. h3. 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. h3. Expected Results It will bring another dialog box requesting for other mandatory fields to fill in according to the issue type selected. h3. Actual Results Error as seen in the screenshot The below exception is thrown in the xxxxxxx.log file: {noformat} 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) {noformat} {noformat} 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) {noformat} h3. Workaround Two known workarounds *For the required field validator on the transition* 1) Disable improved planning interface. The issue doesn't occur when this is disabled. (not available 2) The other workaround is to make the Field as Required from Field Configuration instead of setting it from the Workflow *For a standard required field on the screen without use of any 3rd party validators* * You can (if possible) add the field to the plan interface and set the field there. Then there is no need for the popup as the field is already set. |
Resolution | New: Fixed [ 1 ] | |
Status | Original: Waiting for Release [ 12075 ] | New: Closed [ 6 ] |
UIS | Original: 11 | New: 23 |
Note about the fix implemented for this bug: