Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-31315

Unable to transition an issue using REST API on Atlassian Developer Toolbox 2.0.3

    XMLWordPrintable

Details

    • Bug
    • Resolution: Tracked Elsewhere
    • Low
    • None
    • 5.2.4
    • None

    Description

      Steps to reproduce:

      • Set up a JIRA instance with Atlassian Developer Toolbox (current version: 2.0.3);
      • Create a test project and an issue (FOOBAR-1);
      • Browse to Administration -> Developer Toolbox -> Developer Toolbox -> REST API Browser.
      • Click in Applinks Product Plugin and select Atlassian JIRA - Plugins - REST Plugin which has the URL http://$BASE_URL/rest/api/2;
      • Scroll down the screen and look for the GET method which belongs to the /issue/{issueIdOrKey}/transitions method;
      • Enter "FOOBAR-1" on the issueIdOrKey parameter and click in Execute;
      • Pick a transition ID and at random;
      • Now scroll down the screen a little bit and look for the POST method which belongs to /issue/{issueIdOrKey}/transitions;
      • Enter "FOOBAR-1" on the issueIdOrKey parameter, add the following parameters on the request field and click in Execute:
        {
        "update": {
        "comment": [
        {
        "add": {
        "body": "resolving issue"
        }
        }
        ]
        },
        "transition":
        { "id": "5" }
        }
        

      Current behavior:

      • The issue is not transitioned, the comment isn't added and we have the following error in jira-application.log:
         http-bio-8080-exec-18 ERROR      [500ErrorPage.jsp] Exception caught in 500 page java.lang.IllegalArgumentException: Error parsing media type ', application/xml'
        javax.ws.rs.WebApplicationException: java.lang.IllegalArgumentException: Error parsing media type ', application/xml'
        	at com.sun.jersey.server.impl.model.HttpHelper.clientError(HttpHelper.java:265)
        	at com.sun.jersey.server.impl.model.HttpHelper.getContentType(HttpHelper.java:91)
        	at com.sun.jersey.server.impl.model.HttpHelper.getContentType(HttpHelper.java:77)
        	at com.sun.jersey.spi.container.ContainerRequest.getMediaType(ContainerRequest.java:637)
        	at com.sun.jersey.spi.container.servlet.WebComponent.filterFormParameters(WebComponent.java:832)  <+2> (WebComponent.java:407) (ServletContainer.java:537)
        	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:178)  <+1> (ServletContainer.java:795)
        	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:73)  <+16> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (RestServletUtilsUpdaterFilter.java:26) (RestServletUtilsUpdaterFilter.java:40) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (ContextFilter.java:25) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66)
        	at com.atlassian.mywork.client.filter.ServingRequestsFilter.doFilter(ServingRequestsFilter.java:37)  <+15> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AccessLogFilter.java:103) (AccessLogFilter.java:87) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (XsrfTokenAdditionRequestFilter.java:54) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66)
        	at com.atlassian.labs.remoteapps.modules.permissions.ApiScopingFilter.doFilter(ApiScopingFilter.java:60)  <+22> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (SecurityFilter.java:234) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (TrustedApplicationsFilter.java:98) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (BaseLoginFilter.java:169) (JiraLoginFilter.java:70) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66) (OAuthFilter.java:55) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66)
        	at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:40)  <+18> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractJohnsonFilter.java:71) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (UrlRewriteFilter.java:738) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (GzipFilter.java:74) (GzipFilter.java:51) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:66)
        	at com.atlassian.labs.remoteapps.modules.oauth.OAuth2LOFilter.doFilter(OAuth2LOFilter.java:70)  <+3> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66)
        	at com.atlassian.labs.remoteapps.util.http.bigpipe.RequestIdSettingFilter.doFilter(RequestIdSettingFilter.java:22)  <+43> (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:66) (JWDSendRedirectFilter.java:25) (DelegatingPluginFilter.java:74) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:78) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractCachingFilter.java:33) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (AbstractEncodingFilter.java:41) (AbstractHttpFilter.java:31) (PathMatchingEncodingFilter.java:45) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (JiraStartupChecklistFilter.java:74) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (MultiTenantServletFilter.java:91) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (ChainedFilterStepRunner.java:78) (ApplicationFilterChain.java:243) (ApplicationFilterChain.java:210) (StandardWrapperValve.java:225) (StandardContextValve.java:123) (AuthenticatorBase.java:472) (StandardHostValve.java:168) (ErrorReportValve.java:98) (StandardEngineValve.java:118) (AccessLogValve.java:927) (CoyoteAdapter.java:407) (AbstractHttp11Processor.java:1001) (AbstractProtocol.java:585) (JIoEndpoint.java:310)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        	at java.lang.Thread.run(Thread.java:662)
        Caused by: java.lang.IllegalArgumentException: Error parsing media type ', application/xml'
        	at com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString(MediaTypeProvider.java:79)
        	at com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString(MediaTypeProvider.java:53)
        	at javax.ws.rs.core.MediaType.valueOf(MediaType.java:119)
        	at com.sun.jersey.server.impl.model.HttpHelper.getContentType(HttpHelper.java:89)
        	... 133 more
        	at com.sun.jersey.core.header.reader.HttpHeaderReader.nextToken(HttpHeaderReader.java:98)
        	at com.sun.jersey.core.impl.provider.header.MediaTypeProvider.valueOf(MediaTypeProvider.java:89)
        	at com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString(MediaTypeProvider.java:77)
        	... 136 more
        

      Expected behavior:

      • The issue should be transitioned and the comment must be added;

      Considerations:

      • The REST method is working; Testing it with Postman REST Client or another tool we got the expected behavior.
      • The "Caused by" in the stacktrace told us what problem have happened: The header Content-Type was set to "', application/xml'" instead of "application/json".

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ltflorao LucasA
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: