JIRA Agile fails to be enabled during restart
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs 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
Summary
In Jira Software, Jira Agile app fails to be enabled. The following appears in theatlassian-jira.log
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
*********************************************************************************
Atlassian GreenHopper v8.5.0-DAILY20190920183006 #230fa87c55fdb18d built 2019-09-20T20:34:46.733+02:00 - plugin starting...
*********************************************************************************
2022-08-30 07:25:43,851 ThreadPoolAsyncTaskExecutor::Thread 59 ERROR [c.a.p.osgi.factory.OsgiPlugin] Unable to start the plugin container for plugin 'com.pyxis.greenhopper.jira'
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'greenhopper-launcher': Invocation of init method failed; nested exception is com.thoughtworks.xstream.mapper.CannotResolveClassException: style
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:139)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1686)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:573)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:57)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:322)
at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:287)
at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: style
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:79)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.SecurityMapper.realClass(SecurityMapper.java:71)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:47)
at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:133)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1206)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1190)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1061)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1052)
at com.atlassian.greenhopper.service.PersistenceServiceImpl.getData(PersistenceServiceImpl.java:148)
at com.atlassian.greenhopper.upgrade.UpgradeVersionService.getPluginRunInfoImpl(UpgradeVersionService.java:234)
at com.atlassian.greenhopper.upgrade.UpgradeVersionService.recordPluginStarted(UpgradeVersionService.java:195)
at com.atlassian.greenhopper.service.logging.LogSupportInfo.logSupportInfoOnStartup(LogSupportInfo.java:58)
at com.atlassian.greenhopper.service.logging.LogSupport.onPluginStarting(LogSupport.java:42)
at com.atlassian.greenhopper.Launcher.onSpringContextStarted(Launcher.java:178)
Diagnosis
Run the following SQL statement. propertyvalue column should return an XML entry.
1 2 3
select * from propertyentry pe inner join propertytext pt on pe.id = pt.id where (pe.entity_name like 'GreenHopper.Run.History' or pe.entity_name like 'GreenHopper.UpgradeHistory');
Any other entry that does not return an XML can be considered as problematic
Expected entry
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
<map> <entry> <string>pluginVersion</string> <string>8.20.10</string> </entry> <entry> <string>ranOn</string> <string>2022-09-01T10:49:14.398+02:00</string> </entry> <entry> <string>buildDate</string> <string>2022-06-22T16:16:50.081+02:00</string> </entry> <entry> <string>latestUpgradeTaskRun</string> <string>0</string> </entry> <entry> <string>changeSet</string> <string>b92c120b3532fd60</string> </entry> </map>
The following result is just an example of an problematic entry
Problematic entry
1
<style> h1{backgroundcolor:red}</style> <h1> New version will be released on 1.9. migrated to the cloud from 3:00 p.m </h1>
Cause
Jira Software's configurations are stored as XML within the database. With that, if the XML is invalid for any reason (eg. manually modified, corrupted, etc), it can result in the above error.
Solution
Restore Jira database to a pre-corruption state
If restoring a previous Jira backup is not possible, you could attempt to delete these entries in both propertyentry and propertytext tables but if other records are still corrupted, you would face other unknown issues
Atlassian Support cannot guarantee to provide any support for the steps described on this page as direct data manipulation is not covered under Atlassian Support Offerings. Please be aware that this material is provided for your information only and that you use it at your own risk.
Always back up your data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.
Stop JIRA
Backup Jira database
Run the following SQL to remove the content. You need to replace pt1.propertyvalue value for the one identified using the Diagnosis query.
These queries were written for Postgres and may have to be updated to work on another database:
Query #1 - Get propertyentry Ids to be deleted. Copy those Ids. Those Ids will be needed for Query#3
1 2 3 4
select pe.id from propertyentry pe inner join propertytext_1 pt1 on pe.id = pt1.id where (pe.entity_name like 'GreenHopper.Run.History' or pe.entity_name like 'GreenHopper.UpgradeHistory') and pt1.propertyvalue ='<style> h1{backgroundcolor:red}</style> <h1> New version will be released on 1.9. migrated to the cloud from 3:00 p.m </h1>';
Query #2 - Delete propertytext table entries
1 2 3 4 5
delete from propertytext pt where id in ( select pe.id from propertyentry pe inner join propertytext pt1 on pe.id = pt1.id where (pe.entity_name like 'GreenHopper.Run.History' or pe.entity_name like 'GreenHopper.UpgradeHistory') and pt1.propertyvalue ='<style> h1{backgroundcolor:red}</style> <h1> New version will be released on 1.9. migrated to the cloud from 3:00 p.m </h1>';
Query #3 - Delete propertyentry table entries
1
delete from propertyentry where id in (paste here all Ids from Query#1);
Start Jira
Was this helpful?