-
Bug
-
Resolution: Unresolved
-
Low (View bug fix roadmap)
-
None
-
7.4.1, 7.8.0
-
7.04
-
3
-
Severity 3 - Minor
-
0
-
Summary
When hitting "<baseUrl>/rest/api/2/project/<projectKeyOrId>/permissionscheme?expand=all" in JIRA 7.4.1, it throws a java.lang.NullPointerException.
According to REST API JIRA 7.4.1, this should work.
Expected behavior:
Actual Behaviour
The following traces are thrown:
<status> <status-code>500</status-code> <stack-trace> java.lang.NullPointerException at com.atlassian.jira.rest.v2.issue.scope.RequestScope.get(RequestScope.java:33) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:340) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:35) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:187) at com.sun.proxy.$Proxy680.getBaseUriBuilder(Unknown Source) at com.atlassian.jira.rest.v2.issue.project.ProjectRoleBeanFactoryImpl.projectRole(ProjectRoleBeanFactoryImpl.java:75) at com.atlassian.jira.rest.v2.issue.project.ProjectRoleBeanFactoryImpl.shortProjectRole(ProjectRoleBeanFactoryImpl.java:90) at com.atlassian.jira.rest.v2.admin.permissionscheme.PermissionGrantBeanExpanderImpl$3.expand(PermissionGrantBeanExpanderImpl.java:97) at com.atlassian.jira.rest.v2.admin.permissionscheme.PermissionGrantBeanExpanderImpl.expand(PermissionGrantBeanExpanderImpl.java:118) at com.atlassian.jira.rest.v2.admin.permissionscheme.PermissionSchemeBeansFactoryImpl.toBean(PermissionSchemeBeansFactoryImpl.java:90) at com.atlassian.jira.rest.v2.admin.permissionscheme.PermissionSchemeBeansFactoryImpl.lambda$toBean$0(PermissionSchemeBeansFactoryImpl.java:73) 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.rest.api.permission.PermissionSchemeBean.<init>(PermissionSchemeBean.java:39) at com.atlassian.jira.rest.api.permission.PermissionSchemeBean.<init>(PermissionSchemeBean.java:12) at com.atlassian.jira.rest.api.permission.PermissionSchemeBean$Builder.build(PermissionSchemeBean.java:159) at com.atlassian.jira.rest.v2.admin.permissionscheme.PermissionSchemeBeansFactoryImpl.toBean(PermissionSchemeBeansFactoryImpl.java:76) at com.atlassian.jira.rest.v2.permission.ProjectPermissionSchemeResource$3.apply(ProjectPermissionSchemeResource.java:141) at com.atlassian.jira.rest.v2.permission.ProjectPermissionSchemeResource$3.apply(ProjectPermissionSchemeResource.java:138) at com.atlassian.fugue.Either$LeftProjection.on(Either.java:698) at com.atlassian.jira.rest.v2.permission.ProjectPermissionSchemeResource.getProjectPermissionScheme(ProjectPermissionSchemeResource.java:138) at com.atlassian.jira.rest.v2.permission.ProjectPermissionSchemeResource.access$300(ProjectPermissionSchemeResource.java:40) at com.atlassian.jira.rest.v2.permission.ProjectPermissionSchemeResource$2$1.apply(ProjectPermissionSchemeResource.java:127) at com.atlassian.jira.rest.v2.permission.ProjectPermissionSchemeResource$2$1.apply(ProjectPermissionSchemeResource.java:124) at com.atlassian.fugue.Either$LeftProjection.on(Either.java:698) at com.atlassian.jira.rest.v2.permission.ProjectPermissionSchemeResource$2.apply(ProjectPermissionSchemeResource.java:124) at com.atlassian.jira.rest.v2.permission.ProjectPermissionSchemeResource$2.apply(ProjectPermissionSchemeResource.java:119) at com.atlassian.fugue.Either$LeftProjection.on(Either.java:698) at com.atlassian.jira.rest.v2.permission.ProjectPermissionSchemeResource.getAssignedPermissionScheme(ProjectPermissionSchemeResource.java:119) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:192) at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$1.intercept(DispatchProviderHelper.java:83) at com.atlassian.plugins.rest.common.interceptor.impl.DefaultMethodInvocation.invoke(DefaultMethodInvocation.java:53) at com.atlassian.plugins.rest.common.expand.interceptor.ExpandInterceptor.intercept(ExpandInterceptor.java:34) at com.atlassian.plugins.rest.common.interceptor.impl.DefaultMethodInvocation.invoke(DefaultMethodInvocation.java:53) at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper.invokeMethodWithInterceptors(DispatchProviderHelper.java:110) at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker._dispatch(DispatchProviderHelper.java:190) at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) at .. </stack-trace> </status>
Note
This seems to work in JIRA 7.5.0
Workaround
Don't use expand all, but use combination of desired expand values
I.e. any of "permissions,user,group,projectRole,field,all"
E.g. https://jira.atlassian.com/rest/api/2/project/JRA/permissionscheme?expand=field
Version 8.20.12 are affected.