Jira does not start up due to MalformedJsonException
Symptoms
Jira does not start up. The following appears in the atlassian-jira.log
:
2014-04-14 10:24:18,914 ThreadPoolAsyncTaskExecutor::Thread 3 ERROR [extender.internal.activator.ContextLoaderListener] Application context refresh failed (NonValidatingOsgiBundleXmlApplicationContext(bundle=com.atlassian.activeobjects.activeobjects-plugin, config=osgibundle:/META-INF/spring/*.xml))
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ao-module-descriptor-factory': Cannot create inner bean 'com.atlassian.activeobjects.plugin.ActiveObjectsModuleDescriptorFactory#5b66fa26' of type [com.atlassian.activeobjects.plugin.ActiveObjectsModuleDescriptorFactory] while setting bean property 'target'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.atlassian.activeobjects.plugin.ActiveObjectsModuleDescriptorFactory#5b66fa26' defined in URL [bundle://26.0:0/META-INF/spring/plugin-context.xml]: Cannot resolve reference to bean 'pluginToTablesMapping' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginToTablesMapping' defined in URL [bundle://26.0:0/META-INF/spring/plugin-context.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.atlassian.activeobjects.admin.ActiveObjectsPluginToTablesMapping]: Constructor threw exception; nested exception is com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object near ?��???����???�?�{"AO_60DB7orName":"Atla
Diagnosis
ActiveObjects is a plugin data storage component that plugins can and should use to persist their private data. The list of which tables are associated to which plugins is stored in the database and this information is proceed by Jira application upon start up, if this information is corrupted, Jira won't start.
Execute this query and compare the result with the examples below:
select * from propertytext WHERE ID = (select id from propertyentry where PROPERTY_KEY = 'com.atlassian.activeobjects.admin.ActiveObjectsPluginToTablesMapping');
This is an example of correct entry:
{"AO_54307E_VIEWPORTFIELD":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_TIMEMETRIC":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_E8B6CC_MESSAGE_TAG":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_54307E_METRICCONDITION":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_4AEACD_WEBHOOK_DAO":{"key":"com.atlassian.jira.plugins.webhooks.jira-webhooks-plugin","name":"Jira WebHooks Plugin","version":"1.2.5","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_BRANCH_HEAD_MAPPING":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_A0B856_WEB_HOOK_LISTENER_AO":{"key":"com.atlassian.webhooks.atlassian-webhooks-plugin","name":"Atlassian WebHooks Plugin","version":"0.17.4","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_563AEE_OBJECT_ENTITY":{"key":"com.atlassian.streams.streams-thirdparty-plugin","name":"Streams Third Party Provider Plugin","version":"5.3.18.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_563AEE_ACTOR_ENTITY":{"key":"com.atlassian.streams.streams-thirdparty-plugin","name":"Streams Third Party Provider Plugin","version":"5.3.18.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_54307E_GOAL":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_E8B6CC_BRANCH":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_SYNC_AUDIT_LOG":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_7A2604_CALENDAR":{"key":"com.atlassian.jira.plugins.workinghours","name":"Jira Working Hours Plugin","version":"1.3","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_VIEWPORT":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_A44657_HEALTH_CHECK_ENTITY":{"key":"com.atlassian.jira.plugins.jira-healthcheck-plugin","name":"Atlassian Jira - Plugins - Healthcheck Plugin","version":"1.0.9","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_PULL_REQUEST":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_MESSAGE_QUEUE_ITEM":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_7A2604_WORKINGTIME":{"key":"com.atlassian.jira.plugins.workinghours","name":"Jira Working Hours Plugin","version":"1.3","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_B9A0F0_APPLIED_TEMPLATE":{"key":"com.atlassian.jira.project-templates-plugin","name":"Project Templates Plugin","version":"2.31","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_REPO_TO_CHANGESET":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_563AEE_TARGET_ENTITY":{"key":"com.atlassian.streams.streams-thirdparty-plugin","name":"Streams Third Party Provider Plugin","version":"5.3.18.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_563AEE_MEDIA_LINK_ENTITY":{"key":"com.atlassian.streams.streams-thirdparty-plugin","name":"Streams Third Party Provider Plugin","version":"5.3.18.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_54307E_IMAGES":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_CONFLUENCEKBLABELS":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_VIEWPORTFORM":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_97EDAB_USERINVITATION":{"key":"com.atlassian.jira.jira-invite-user-plugin","name":"Atlassian Jira - Plugins - Invite User","version":"1.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_PR_TO_COMMIT":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_54307E_QUEUECOLUMN":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_CONFLUENCEKB":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_GROUPTOREQUESTTYPE":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_38321B_CUSTOM_CONTENT_LINK":{"key":"com.atlassian.plugins.atlassian-nav-links-plugin","name":"Atlassian Navigation Links Plugin","version":"3.2.18","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_ISSUE_TO_CHANGESET":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_COMMIT_ISSUE_KEY":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_563AEE_ACTIVITY_ENTITY":{"key":"com.atlassian.streams.streams-thirdparty-plugin","name":"Streams Third Party Provider Plugin","version":"5.3.18.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_21D670_WHITELIST_RULES":{"key":"com.atlassian.plugins.atlassian-whitelist-api-plugin","name":"Atlassian Whitelist API Plugin","version":"1.6","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_54307E_STATUSMAPPING":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_E8B6CC_PR_PARTICIPANT":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_54307E_CONFLUENCEKBENABLED":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_E8B6CC_REPOSITORY_MAPPING":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_MESSAGE":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_54307E_REPORT":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_7A2604_HOLIDAY":{"key":"com.atlassian.jira.plugins.workinghours","name":"Jira Working Hours Plugin","version":"1.3","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_QUEUE":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_CUSTOMTHEME":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_SERIES":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_SERVICEDESK":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_E8B6CC_PR_ISSUE_KEY":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_GIT_HUB_EVENT":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_ISSUE_TO_BRANCH":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_E8B6CC_ORGANIZATION_MAPPING":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_54307E_GROUP":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_E8B6CC_COMMIT":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_54307E_VIEWPORTFIELDVALUE":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_E8B6CC_CHANGESET_MAPPING":{"key":"com.atlassian.jira.plugins.jira-bitbucket-connector-plugin","name":"Jira DVCS Connector Plugin","version":"1.4.15","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"},"AO_563AEE_ACTIVITY_OBJ_ENTITY":{"key":"com.atlassian.streams.streams-thirdparty-plugin","name":"Streams Third Party Provider Plugin","version":"5.3.18.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com/"}}
This is an example of bad entry, note that the parameters are not properly enclosed:
{"AO_54307E_VIEWPORTFIELD":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"http://www.atlassian.com"},"AO_54307E_TIMEMETRIC":{"key":"com.atlassian.servicedesk","name":"Jira Service Management","version":"1.2.1","vendorName":"Atlassian","vendorUrl":"
Cause
The cause to this issue was not determined, but the most probable cause is a failed database server transaction, which resulted in a corrupted value being inserted in the database.
Resolution
Shutdown Jira;
- Create a database backup;
- Remove the corrupted information with the following queries:
delete from propertytext where id = (select id from propertyentry where PROPERTY_KEY = 'com.atlassian.activeobjects.admin.ActiveObjectsPluginToTablesMapping');
delete from propertyentry where PROPERTY_KEY = 'com.atlassian.activeobjects.admin.ActiveObjectsPluginToTablesMapping';
Execute the queries in this exact order.
- Restart Jira, so that those entries will be recreated.