Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

Recognition

  • Give kudos
  • My kudos

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

"ProjectRole should not be null!"

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)

 

1 answer

1 accepted

1 vote
Answer accepted

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

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:

Screen Shot 2019-07-02 at 2.28.11 PM.png

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

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

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

Like Earl McCutcheon likes this

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

Like Marcel Kuhmann likes this

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Jira Software

How to create Jira issus from Excel file?

When to use CSV importer When managing your processes in Jira, there are many occasions where you need to create a lot of tasks. Creating them one by one will cost you a lot of time and effort and i...

4,624 views 22 33
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you