Getting error message "com.opensymphony.user.EntityNotFoundException" when operating on issue

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.

Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Symptoms

When operating on issue, for example changing Assignee, Assigning ticket or mention user in the comment, once you save the modification, there is a popup message said : "Exception occurred: java.lang.ClassNotFoundException: com.opensymphony.user.EntityNotFoundException".  And the modification can be display correctly after refreshing the page.

 The following appears in the atlassian-jira.log:

java.lang.NoClassDefFoundError: com/opensymphony/user/EntityNotFoundException
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
	at java.lang.Class.getDeclaredConstructors(Class.java:1836)
	at org.picocontainer.defaults.ConstructorInjectionComponentAdapter.getSortedMatchingConstructors(ConstructorInjectionComponentAdapter.java:229)
	at org.picocontainer.defaults.ConstructorInjectionComponentAdapter.getGreediestSatisifableConstructor(ConstructorInjectionComponentAdapter.java:76)
	at org.picocontainer.defaults.ConstructorInjectionComponentAdapter.instantiateComponent(ConstructorInjectionComponentAdapter.java:193)
	at org.picocontainer.defaults.InstantiatingComponentAdapter.getComponentInstance(InstantiatingComponentAdapter.java:48)
	at org.picocontainer.defaults.DecoratingComponentAdapter.getComponentInstance(DecoratingComponentAdapter.java:42)
	at org.picocontainer.defaults.SynchronizedComponentAdapter.getComponentInstance(SynchronizedComponentAdapter.java:35)
	at org.picocontainer.defaults.DecoratingComponentAdapter.getComponentInstance(DecoratingComponentAdapter.java:42)
	at com.atlassian.jira.config.component.ProfilingComponentAdapter.getComponentInstance(ProfilingComponentAdapter.java:45)
	at org.picocontainer.defaults.DefaultPicoContainer.getComponentInstance(DefaultPicoContainer.java:298)
	at com.atlassian.jira.util.JiraUtils.loadComponent(JiraUtils.java:113)
	at com.atlassian.jira.util.JiraUtils.loadComponent(JiraUtils.java:91)
	at com.atlassian.jira.workflow.DefaultOSWorkflowConfigurator$LegacyJiraTypeResolver.loadObject(DefaultOSWorkflowConfigurator.java:168)
	at com.opensymphony.workflow.TypeResolver.getCondition(TypeResolver.java:73)
	at com.atlassian.jira.workflow.DefaultOSWorkflowConfigurator$JiraTypeResolverDelegator.getCondition(DefaultOSWorkflowConfigurator.java:115)
	at sun.reflect.GeneratedMethodAccessor420.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$AbstractMultiTenantAwareInvocationHandler.invokeInternal(MultiTenantComponentFactoryImpl.java:181)
	at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$MultiTenantAwareMethodInterceptor.intercept(MultiTenantComponentFactoryImpl.java:230)
	at com.opensymphony.workflow.TypeResolver$$EnhancerByCGLIB$$34dcebff.getCondition(<generated>)
	at com.opensymphony.workflow.AbstractWorkflow.passesCondition(AbstractWorkflow.java:1077)
	at com.opensymphony.workflow.AbstractWorkflow.passesConditions(AbstractWorkflow.java:1119)
	at com.opensymphony.workflow.AbstractWorkflow.passesConditions(AbstractWorkflow.java:1143)
	at com.opensymphony.workflow.AbstractWorkflow.getAvailableActionsForStep(AbstractWorkflow.java:723)
	at com.opensymphony.workflow.AbstractWorkflow.getAvailableActions(AbstractWorkflow.java:115)
	at com.atlassian.jira.workflow.IssueWorkflowManagerImpl.getAvailableActionIds(IssueWorkflowManagerImpl.java:140)
	at com.atlassian.jira.workflow.IssueWorkflowManagerImpl.getAvailableActions(IssueWorkflowManagerImpl.java:41)
	at com.atlassian.jira.workflow.IssueWorkflowManagerImpl.getSortedAvailableActions(IssueWorkflowManagerImpl.java:65)
	at com.atlassian.jira.issue.transitions.TransitionLinkFactory.getAvailableActions(TransitionLinkFactory.java:63)
	at com.atlassian.jira.issue.transitions.TransitionLinkFactory.getLinks(TransitionLinkFactory.java:52)
......
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassNotFoundException: com.opensymphony.user.EntityNotFoundException
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
	... 319 more

Cause

It could be that there is one transition is using a condition which is still using the old class, which cause this issue as each modification on JIRA issue, the whole page will be reload and the component will be all rend it again.

Here is an example: 

This issue could probably reproduced when importing an workflow XML file from an older version of JIRA (4.x or earlier).

Workaround

  1. Export the workflow to XML file and search the term 'opensymphony' to locate the transition which is currently using the condition. 
  2. Create a draft of the workflow and edit the workflow. 
  3. Delete the condition and recreate the same within a standard way. (in the example, the 'OSUserGroupCondition' should be reproduced by 'User in Group').
  4. Publish the new workflow.
Last modified on Jan 14, 2025

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.