After creating a new Project I receive on most pages the following error (Creating an Issue, Browse Projects, ... ). The only way to solve this error is to delete the new created project again.
I used Jira Software 7.13 and tried to update to 8.2.2. But it doesn't work.
Does anyone have an idea?
Could not evaluate condition 'com.atlassian.jira.software.api.conditions.SoftwareProjectAdminCondition@9862d6a' for descriptor: com.atlassian.jira.plugins.jira-development-integration-plugin:devstatus-admin-page-link (null)
com.atlassian.jira.util.dbc.Assertions$NullArgumentException: ProjectRole should not be null!
at com.atlassian.jira.util.dbc.Assertions.notNull(Assertions.java:25)
at com.atlassian.jira.security.roles.DefaultProjectRoleManager.getProjectRoleActors(DefaultProjectRoleManager.java:107)
at com.atlassian.jira.notification.type.ProjectRoleSecurityAndNotificationType.getProjectRoleActors(ProjectRoleSecurityAndNotificationType.java:185)
at com.atlassian.jira.notification.type.ProjectRoleSecurityAndNotificationType.hasPermission(ProjectRoleSecurityAndNotificationType.java:138)
at com.atlassian.jira.permission.DefaultPermissionSchemeManager.lambda$hasSchemePermission$4(DefaultPermissionSchemeManager.java:443)
at com.atlassian.jira.permission.DefaultPermissionSchemeManager.hasSchemePermission(DefaultPermissionSchemeManager.java:609)
at com.atlassian.jira.permission.DefaultPermissionSchemeManager.hasSchemePermission(DefaultPermissionSchemeManager.java:443)
at com.atlassian.jira.security.DefaultPermissionManager.doProjectPermissionCheck(DefaultPermissionManager.java:201)
at com.atlassian.jira.security.DefaultPermissionManager.hasPermission(DefaultPermissionManager.java:108)
at com.atlassian.jira.security.WorkflowBasedPermissionManager.hasPermission(WorkflowBasedPermissionManager.java:110)
at com.atlassian.jira.security.ApplicationRequiredPermissionManager.lambda$hasPermission$5(ApplicationRequiredPermissionManager.java:97)
at com.atlassian.jira.security.ApplicationRequiredPermissionManager.checkUserHasApplicationOrFalse(ApplicationRequiredPermissionManager.java:187)
at com.atlassian.jira.security.ApplicationRequiredPermissionManager.hasPermission(ApplicationRequiredPermissionManager.java:97)
at com.atlassian.jira.security.PublicAccessPermissionManager.lambda$hasPermission$5(PublicAccessPermissionManager.java:101)
at com.atlassian.jira.security.PublicAccessPermissionManager.checkPublicAccessEnabledOrDelegate(PublicAccessPermissionManager.java:193)
at com.atlassian.jira.security.PublicAccessPermissionManager.hasPermission(PublicAccessPermissionManager.java:101)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:38)
at com.sun.proxy.$Proxy10.hasPermission(Unknown Source)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at com.sun.proxy.$Proxy10.hasPermission(Unknown Source)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
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:185)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
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:185)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy3180.hasPermission(Unknown Source)
at com.atlassian.jira.software.api.conditions.SoftwareProjectAdminCondition.shouldDisplay(SoftwareProjectAdminCondition.java:68)
at com.atlassian.plugin.web.DefaultWebInterfaceManager.filterFragmentsByCondition(DefaultWebInterfaceManager.java:160)
at com.atlassian.plugin.web.DefaultWebInterfaceManager.getDisplayableItems(DefaultWebInterfaceManager.java:113)
at com.atlassian.plugin.web.DefaultWebInterfaceManager.getDisplayableWebItems(DefaultWebInterfaceManager.java:212)
at com.atlassian.jira.plugin.webfragment.DefaultSimpleLinkManager.getLinksForSection(DefaultSimpleLinkManager.java:120)
at com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager.access$701(ThreadLocalCachingSimpleLinkManager.java:28)
at com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager$3.load(ThreadLocalCachingSimpleLinkManager.java:149)
at com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager$3.load(ThreadLocalCachingSimpleLinkManager.java:146)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3528)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2277)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2154)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2044)
at com.google.common.cache.LocalCache.get(LocalCache.java:3952)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4958)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4964)
at com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager.getLinksForSection(ThreadLocalCachingSimpleLinkManager.java:153)
at com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager.getLinksForSection(ThreadLocalCachingSimpleLinkManager.java:140)
at com.atlassian.jira.web.sitemesh.AdminDecoratorHelper.getLinksForSection(AdminDecoratorHelper.java:598)
at com.atlassian.jira.web.sitemesh.AdminDecoratorHelper.getSectionContainsAtleastOneLink(AdminDecoratorHelper.java:612)
at com.atlassian.jira.web.sitemesh.AdminDecoratorHelper.makeSideMenuSoyRenderData(AdminDecoratorHelper.java:398)
at com.atlassian.jira.web.sitemesh.AdminDecoratorHelper.makeChildSectionsForSection(AdminDecoratorHelper.java:423)
at com.atlassian.jira.web.sitemesh.AdminDecoratorHelper.makeSideMenuSoyRenderData(AdminDecoratorHelper.java:413)
at com.atlassian.jira.web.sitemesh.AdminDecoratorHelper.makeChildSectionsForSection(AdminDecoratorHelper.java:423)
at com.atlassian.jira.web.sitemesh.AdminDecoratorHelper.makeSideMenuSoyRenderData(AdminDecoratorHelper.java:413)
at com.atlassian.jira.web.sitemesh.AdminDecoratorHelper.getSideMenuHtml(AdminDecoratorHelper.java:363)
... 3 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at webwork.util.InjectionUtils$DefaultInjectionImpl.invoke(InjectionUtils.java:70)
at webwork.util.InjectionUtils.invoke(InjectionUtils.java:56)
at webwork.util.ValueStack.findValue(ValueStack.java:517)
at webwork.util.ValueStack.findValue(ValueStack.java:216)
at webwork.view.taglib.WebWorkBodyTagSupport.findValue(WebWorkBodyTagSupport.java:62)
at webwork.view.taglib.BasicPropertyTag.doStartTag(BasicPropertyTag.java:54)
at jsp.decorators.admin_jsp._jspx_meth_ww_005fproperty_005f6(admin_jsp.java:1345)
at jsp.decorators.admin_jsp._jspx_meth_ui_005fparam_005f3(admin_jsp.java:1314)
at jsp.decorators.admin_jsp._jspx_meth_ui_005fsoy_005f2(admin_jsp.java:1211)
at jsp.decorators.admin_jsp._jspx_meth_ui_005fparam_005f1(admin_jsp.java:1165)
at jsp.decorators.admin_jsp._jspx_meth_ui_005fsoy_005f1(admin_jsp.java:1127)
at jsp.decorators.admin_jsp._jspx_meth_ww_005fproperty_005f2(admin_jsp.java:855)
at jsp.decorators.admin_jsp._jspService(admin_jsp.java:390)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
... 50 filtered
at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
... 1 filtered
at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
... 36 filtered
at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
... 10 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)
... 26 filtered
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
... 25 filtered
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Hi Marcel,
Looking at the error, the part that is standing out the most is:
ProjectRole should not be null!
This indicates there is something occuring on the project role association, possibly a missing or duplicated value. Can you run the following DB query against the projectrole table and post the output so we can take a closer look at whats occuring in the table:
select * from projectrole;
Regards,
Earl
Hi Earl,
thanks for your reply. The query returns the following result:
id | name | description
-------+----------------+------------------------------------------------------------
10300 | Users |
10002 | Administrators | A project role that represents administrators in a project
10200 | Papillon Rolle |
10104 | Developers |
(4 rows)
Today I figured out that the error occurs if I create a project of type "business". If I choose a "software" template, the error don't appear.
On my Jira dashboard I have an "Activity Stream" widget. This also throws an error. But If I edit this widget and remove Bamboo from the selected streams, the activity stream shows up again.
Maybe a problem with Jira developer tools/integrations connected to Bamboo ?!?.
It would make a bit sense, because projects of type "business" don't use the developer tools.
Additional Infos about our Jira instance:
- Bitbucket Server, Confluence and Bamboo are connected.
- We don't have any addons installed.
- The database was migrated from Jira Cloud to Jira Server.
Regards,
Marcel
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Marcel,
Thanks for the results on the DB query, I was expecting to see either the Administrators option to be missing or a duplicate on one of the other values but the table looks good on the surface in the current state, also good catch on link to the business project type as the trigger as well, I'm not sure how its relating but having the repro steps narrowed down will help.
Breaking down the error it is noting that during the project creation it is using the permission scheme to add in a project role that contains NULL referance to the "View Development Tools" project permission. which is tied to one of the add-on system components: "Atlassian Jira - Plugins - Development Integration Plugin" as the error descriptor component is triggering on the app key:
jira-development-integration-plugin:devstatus-admin-page-link
In a Core/Business Project this permission is not actually used as a Core project cannot interface with the devtools functions but the permissions are part of the default permission scheme and will associated by default on core projects but should be ignored by a core project perm checks. Can you take a look at the default permission scheme and let me know what the Permission grants are set to for "View Development Tools"
Another possibility here is that this could be related to a failure occuring directly in the system add-on making the association, can you check Settings >> Manage apps and set the search criteria to "Application components" and search for the "Atlassian Jira - Plugins - Development Integration Plugin" component to see if there are any modules flagged as disabled or possibly the wrong version is installed from a missed upgrade task from your recent upgrade. It should be on version 5.4.0 with 136 of 136 modules enabled for Jira 8.2.2:
I've been playing around with a local install a bit trying to trigger something similar to this but I'm not able to reproduce, and this really seems like the most likely culprit was a missed upgrade task causing disconnect in the project creation templates or system add-ons in some way leaving behind a project Role association, At this point I am only guessing at what might be occuring without being able to reproduce this on a clean install so If we are not able to find anything with the steps listed above next steps will be to get you in touch with our support team at https://support.atlassian.com/contact/ so we can review the logging from instance during and after the upgrade in more detail.
Regards,
Earl
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Earl,
thanks for your fast reply.
Permission schemes is a good hint. The projects of type business uses the "Default Permission Scheme" which isn't used by any other project in our Jira instance. All software projects uses "Default software scheme".
The application component "Atlassian Jira - Plugins - Development Integration Plugin" is installed on version 5.4.0 with all 136 of 136 modules enabled.
If I try to view the permissions of "Default Permission Scheme" I get only a blank page and a NullPointerException in the log, even if I remove the "broken" project. So your thoughts are right.
But how can I find out what is wrong? I think the only way is to have a look at the database. Do you know which tables belong to permission schemes?
FYI, I tried to concat the support already but with a Jira Server Starter license the page tells me that I'm not allowed to receive personal support. So my only hope was to get help in the community section.
Many thanks for your help so far.
Regards,
Marcel
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Earl,
it's working. I've executed the following query to find out which permissions are referencing to a non-existing projectrole.
select * from schemepermissions where perm_type = 'projectrole' and perm_parameter not in (select cast(id as varchar) from projectrole);
The result listed a lot of permissions in scheme 0 (which is the Default Permission Scheme) are using the projectrole 10003 which don't exists. So I created a new projectrole and changed the id of it to 10003. After restarting Jira the error is gone.
(I know its not the safest way to edit the database directly).
I hope this thread helps other community members with similar problems too.
Thanks so much for your help, Earl.
Regards,
Marcel
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Marcel,
Awesome to hear, and thanks for the confirmation on the cause of the issue.
It sounds like a project role was removed at some point in the past but there was still a remnant record left behind on that ID 10003. Your approach sounds solid and relatively safe from the behavior, Noting backups, plus testing and a roll back plan are always a top recommendation when direct DB edits are at play just to be on the safe side, but overall sounds good and I'm sure this will be really helpful if other community members encounter a similar issue so thanks again for sharing the workaround.
Regards,
Earl
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.