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

"api/2/permissionscheme" REST API does not work

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Low
    • None
    • 7.0.0
    • REST API

    Description

      Steps to Reproduce:

      1. Install JIRA 7
      2. Finish the installation.
      3. Run GET call for the REST below whether using browser or any other tool:
        <Base URL>/rest/api/2/permissionscheme

      Expected Result:

      • Like in the documentation, 200 OK response will be returned with the Default Permission Scheme details.

      Actual Result:

      • It will returned 500 Internal Server Error instead with error on the logs:
        2015-10-13 18:58:03,843 http-nio-8700-exec-18 ERROR admin 1138x1282x1 iiy4d0 0:0:0:0:0:0:0:1 /rest/api/2/permissionscheme [c.a.j.rest.exception.ExceptionInterceptor] Returning internal server error in response
        java.lang.reflect.InvocationTargetException
        	at sun.reflect.GeneratedMethodAccessor849.invoke(Unknown Source)
        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        	at java.lang.reflect.Method.invoke(Method.java:497)
        	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:234)
        	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$1.intercept(DispatchProviderHelper.java:100)
        	... 1 filtered
        	at com.atlassian.jira.rest.exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:59)
        	... 1 filtered
        	at com.atlassian.jira.rest.v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:43)
        	... 14 filtered
        	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:178)
        	... 1 filtered
        	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:73)
        	... 41 filtered
        	at com.atlassian.plugins.cors.CorsFilter.doFilter(CorsFilter.java:65)
        	... 64 filtered
        	at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:40)
        	... 73 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)
        Caused by: java.lang.IllegalArgumentException: Parameter should be set if and only if type requires it. Type was: applicationRole, parameter was: null
        	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122)
        	at com.atlassian.jira.permission.PermissionHolder.holder(PermissionHolder.java:66)
        	at com.atlassian.jira.permission.PermissionSchemeRepresentationConverter.holder(PermissionSchemeRepresentationConverter.java:130)
        	at com.atlassian.jira.permission.PermissionSchemeRepresentationConverter.access$000(PermissionSchemeRepresentationConverter.java:22)
        	at com.atlassian.jira.permission.PermissionSchemeRepresentationConverter$4.apply(PermissionSchemeRepresentationConverter.java:89)
        	at com.atlassian.fugue.Option.map(Option.java:272)
        	at com.atlassian.jira.permission.PermissionSchemeRepresentationConverter.permissionGrant(PermissionSchemeRepresentationConverter.java:82)
        	at com.atlassian.jira.permission.PermissionSchemeRepresentationConverter$1.apply(PermissionSchemeRepresentationConverter.java:39)
        	at com.atlassian.jira.permission.PermissionSchemeRepresentationConverter$1.apply(PermissionSchemeRepresentationConverter.java:35)
        	at com.google.common.collect.Iterators$8.transform(Iterators.java:799)
        	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
        	at com.google.common.collect.Iterators$7.computeNext(Iterators.java:651)
        	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
        	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
        	at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43)
        	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:272)
        	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:226)
        	at com.atlassian.jira.permission.data.PermissionSchemeImpl.<init>(PermissionSchemeImpl.java:37)
        	at com.atlassian.jira.permission.PermissionSchemeRepresentationConverter.permissionScheme(PermissionSchemeRepresentationConverter.java:34)
        	at com.atlassian.jira.permission.DefaultPermissionSchemeService$1.apply(DefaultPermissionSchemeService.java:90)
        	at com.atlassian.jira.permission.DefaultPermissionSchemeService$1.apply(DefaultPermissionSchemeService.java:86)
        	at com.google.common.collect.Iterators$8.transform(Iterators.java:799)
        	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
        	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:271)
        	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:226)
        	at com.atlassian.jira.permission.DefaultPermissionSchemeService.getPermissionSchemes(DefaultPermissionSchemeService.java:79)
        	... 2 filtered
        	at java.lang.reflect.Method.invoke(Method.java:497)
        	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:30)
        	at com.sun.proxy.$Proxy444.getPermissionSchemes(Unknown Source)
        	... 2 filtered
        	at java.lang.reflect.Method.invoke(Method.java:497)
        	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
        	at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
        	at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
        	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        	at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
        	at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        	at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
        	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
        	at com.sun.proxy.$Proxy2171.getPermissionSchemes(Unknown Source)
        	at com.atlassian.jira.rest.v2.admin.permissionscheme.PermissionSchemeResource$1.apply(PermissionSchemeResource.java:206)
        	at com.atlassian.jira.rest.v2.admin.permissionscheme.PermissionSchemeResource$1.apply(PermissionSchemeResource.java:202)
        	at com.atlassian.fugue.Either$LeftProjection.on(Either.java:663)
        	at com.atlassian.jira.rest.v2.admin.permissionscheme.PermissionSchemeResource.getPermissionSchemes(PermissionSchemeResource.java:201)
        	... 210 more
        

      Notes:

      • It is caused by the new Application Role on the Project Role.

      Workaround:

      • Removing of this role on every permissions on each permission scheme will make the REST call possible.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jrahmadiputra Julian (Inactive)
              Votes:
              3 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: