JIRA: System Error When Project Administrator Trying to Access the Permission Page
Symptoms
This screen was shown when a normal jira-user
has been given a Project Administrator
role, and the user tries to access a Project Permission Page:
The following exception can be found within the atlassian-jira.log
or by expanding the Technical details section of the error page above:
Cause
Referer URL: https://your.url.com/plugins/servlet/project-config/yourproject
java.lang.IllegalArgumentException: The Project argument and its backing generic value must not be null
at com.atlassian.jira.security.AbstractPermissionManager.hasPermission(AbstractPermissionManager.java:154)
at com.atlassian.jira.security.AbstractPermissionManager.hasPermission(AbstractPermissionManager.java:137)
at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.atlassian.util.profiling.object.ObjectProfiler.profiledInvoke(ObjectProfiler.java:83)
at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:28)
at com.sun.proxy.$Proxy93.hasPermission(Unknown Source)
at com.atlassian.jira.bc.project.ProjectAction.hasPermission(ProjectAction.java:70)
at com.atlassian.jira.permission.DefaultProjectPermissionSchemeHelper.hasEditPermission(DefaultProjectPermissionSchemeHelper.java:50)
at com.atlassian.jira.permission.DefaultProjectPermissionSchemeHelper.getSharedProjects(DefaultProjectPermissionSchemeHelper.java:39)
at sun.reflect.GeneratedMethodAccessor1951.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129)
at com.sun.proxy.$Proxy498.getSharedProjects(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1951.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154)
at com.sun.proxy.$Proxy498.getSharedProjects(Unknown Source)
at com.atlassian.jira.projectconfig.contextproviders.ProjectPermissionContextProvider.getContextMap(ProjectPermissionContextProvider.java:86)
at com.atlassian.jira.plugin.webfragment.CacheableContextProviderDecorator.initContextMap(CacheableContextProviderDecorator.java:70)
at com.atlassian.jira.plugin.webfragment.CacheableContextProviderDecorator.getContextMap(CacheableContextProviderDecorator.java:46)
at com.atlassian.plugin.web.descriptors.DefaultWebPanelModuleDescriptor$ContextAwareWebPanel.getHtml(DefaultWebPanelModuleDescriptor.java:144)
at com.atlassian.jira.projectconfig.tab.WebPanelTab.getTab(WebPanelTab.java:75)
at com.atlassian.jira.projectconfig.servlet.PanelServlet.outputTab(PanelServlet.java:177)
at com.atlassian.jira.projectconfig.servlet.PanelServlet.doGet(PanelServlet.java:150)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
...
Cause
Some issues are still referring to projects that were deleted.
Resolution
Always back up your data before performing any modification to the database. If possible, try your modifications on a test server.
- Stop JIRA.
- Create a backup of your database.
Run the following query:
DELETE FROM nodeassociation WHERE source_node_entity = 'Project' AND source_node_id NOT IN (SELECT id FROM project); DELETE FROM jiraissue WHERE project NOT IN (SELECT id FROM project); DELETE FROM projectversion WHERE project NOT IN (SELECT id FROM project); DELETE FROM component WHERE project NOT IN (SELECT id FROM project);
- Start JIRA.
- Perform a Full re-index on your JIRA instance to successfully retrieve the updated value from database.
If the above query does not solve the problem, please see also: JIRA Functionality Fails due to The Project argument and its backing generic value must not be null Error for further information.