-
Type:
Bug
-
Resolution: Won't Fix
-
Priority:
Low
-
Component/s: Request Type Configuration
-
4
-
Severity 3 - Minor
NOTE: This bug report is for JIRA Service Desk Cloud. Using JIRA Service Desk Server? See the corresponding bug report.
Summary
When a new Service Desk is created, JIRA Service Desk doesn't check for existing sub-task types with the same name as the default issue types created by JSD.
This will cause JSD to map valid request types to sub-tasks, which is not supported and hence throw an error when creating new requests.
Steps to Reproduce
- Create sub-tasks with the same name as the JIRA Service Desk issue types (e.g. Incident / Problem / Service Request)
- Create a Service Desk project that uses those issue types.
- Navigate to the the new project > Project Settings > Request Types.
- Double-check that the request is mapped to a sub-task, as the screenshot below:

Expected Results
JIRA Service Desk should not create an inconsistent configuration - It should either:
- Create a new issue type so that the mapping works properly.
- Prompt users that the issue type is already mapped to a sub-task and hence one of the issue types will have to be renamed.
Actual Results
When you try to create a request using this type, the following error is displayed in the screen:
![]()
The stack trace below can be found in the atlassian-jira.log:
09-Jan-2017 11:46:44.817 WARNING [http-nio-8726-exec-15] com.sun.jersey.spi.container.servlet.WebComponent.filterFormParameters A servlet request, to the URI http://localhost:8726/jira726/rest/servicedesk/1/customer/pages/portal/4/create/22, contains form parameters in the request body but the request body has been consumed by the servlet or a servlet filter accessing the request parameters. Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected. 2017-01-09 11:46:44,830 http-nio-8726-exec-15 ERROR username 706x5730x1 oatdom 0:0:0:0:0:0:0:1 /servicedesk/customer/portal/4/create/22 [c.a.p.r.c.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: messages must have at least one entry java.lang.IllegalArgumentException: messages must have at least one entry at com.atlassian.pocketknife.api.commons.error.ErrorBuilder.buildSingleError(ErrorBuilder.java:107) at com.atlassian.pocketknife.api.commons.jira.ErrorCollectionHelper.error(ErrorCollectionHelper.java:22) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerRequestManager.com$atlassian$servicedesk$internal$feature$customer$request$CustomerRequestManager$$validateCreateIssueInputParameters(CustomerRequestManager.scala:97) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerRequestManager$$anonfun$createRequest$2$$anonfun$apply$1$$anonfun$apply$3.apply(CustomerRequestManager.scala:80) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerRequestManager$$anonfun$createRequest$2$$anonfun$apply$1$$anonfun$apply$3.apply(CustomerRequestManager.scala:73) at scalaz.$bslash$div.flatMap(Either.scala:134) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerRequestManager$$anonfun$createRequest$2$$anonfun$apply$1.apply(CustomerRequestManager.scala:73) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerRequestManager$$anonfun$createRequest$2$$anonfun$apply$1.apply(CustomerRequestManager.scala:72) at scalaz.$bslash$div.flatMap(Either.scala:134) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerRequestManager$$anonfun$createRequest$2.apply(CustomerRequestManager.scala:72) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerRequestManager$$anonfun$createRequest$2.apply(CustomerRequestManager.scala:70) at scalaz.$bslash$div.flatMap(Either.scala:134) at com.atlassian.servicedesk.internal.feature.customer.request.CustomerRequestManager.createRequest(CustomerRequestManager.scala:70) at com.atlassian.servicedesk.internal.feature.customer.request.InternalCustomerRequestServiceScala$$anonfun$createRequest$2$$anonfun$apply$1$$anonfun$apply$3$$anonfun$apply$4.apply(InternalCustomerRequestServiceScala.scala:126) at com.atlassian.servicedesk.internal.feature.customer.request.InternalCustomerRequestServiceScala$$anonfun$createRequest$2$$anonfun$apply$1$$anonfun$apply$3$$anonfun$apply$4.apply(InternalCustomerRequestServiceScala.scala:122) (...) at com.atlassian.servicedesk.internal.rest.CustomerWeb.submitForm(CustomerWeb.scala:705) ... 3 filtered at java.lang.reflect.Method.invoke(Method.java:497) at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ... 13 filtered at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154) ... 1 filtered at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68) ... 33 filtered at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:31) ... 4 filtered at com.atlassian.servicedesk.internal.web.UrlOperationalStatusCheckFilter.doFilterWhenLicensed(UrlOperationalStatusCheckFilter.java:38) at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:31) ... 4 filtered at com.atlassian.servicedesk.internal.web.PopulateEyeballForRestFilter.doFilterWhenLicensed(PopulateEyeballForRestFilter.java:33) at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:31) ... 4 filtered at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) ... 40 filtered at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:76) ... 1 filtered at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:74) ... 20 filtered at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30) ... 5 filtered at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:116) ... 11 filtered at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25) ... 41 filtered at com.atlassian.servicedesk.project.internal.web.filters.NormaliseUrlFilter.doFilter(NormaliseUrlFilter.java:25) ... 15 filtered at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:76) ... 1 filtered at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:74) ... 29 filtered at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30) ... 5 filtered at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:181) at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:142) at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runInContext(ReentrantThreadLocalBasedCodeContext.java:57) at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runInCustomerContext(CustomerContextServiceImpl.java:38) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.inCustomerContext(CustomerContextSettingFilter.java:169) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:128) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:121) ... 4 filtered at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32) ... 8 filtered at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) ... 4 filtered at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36) ... 29 filtered at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25) ... 27 filtered at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
Notes
(Optional - If Necessary)
Workaround
- Rename the existing issue type (e.g. to Incident (Sub-task)) before creating the new Service Desk.
- Delete the current association with the sub-task and create a valid association with a standard issue type.
- is related to
-
JSDSERVER-4632 Unable to create requests due to subtasks having the same name as JSD issue types
-
- Closed
-