Can't run Confluence due to com.atlassian.config.ConfigurationException: Failed to parse config file
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the server and data center platforms.
Problem
After changes in Confluence's MySQL database URL, Confluence is not running and following appears in the catalina.out:
2015-03-24 07:45:29,857 ERROR [localhost-startStop-1] [atlassian.config.bootstrap.DefaultAtlassianBootstrapManager] init Home is not configured properly:
com.atlassian.config.ConfigurationException: Failed to parse config file: Error on line 23 of document : The reference to entity "zeroDateTimeBehavior" must end with the ';' delimiter. Nested exception: The reference to entity "zeroDateTimeBehavior" must end with the ';' delimiter.
at com.atlassian.config.xml.DefaultDom4jXmlConfigurationPersister.load(DefaultDom4jXmlConfigurationPersister.java:35)
at com.atlassian.config.xml.DefaultDom4jXmlConfigurationPersister.load(DefaultDom4jXmlConfigurationPersister.java:65)
at com.atlassian.config.ApplicationConfig.load(ApplicationConfig.java:262)
at com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager.init(DefaultAtlassianBootstrapManager.java:68)
at com.atlassian.config.util.BootstrapUtils.init(BootstrapUtils.java:36)
at com.atlassian.confluence.setup.ConfluenceConfigurationListener.initialiseBootstrapContext(ConfluenceConfigurationListener.java:129)
at com.atlassian.confluence.setup.ConfluenceConfigurationListener.contextInitialized(ConfluenceConfigurationListener.java:64)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.dom4j.DocumentException: Error on line 23 of document : The reference to entity "zeroDateTimeBehavior" must end with the ';' delimiter. Nested exception: The reference to entity "zeroDateTimeBehavior" must end with the ';' delimiter.
at org.dom4j.io.SAXReader.read(SAXReader.java:355)
at org.dom4j.io.SAXReader.read(SAXReader.java:261)
at com.atlassian.config.xml.AbstractDom4jXmlConfigurationPersister.loadDocument(AbstractDom4jXmlConfigurationPersister.java:68)
at com.atlassian.config.xml.DefaultDom4jXmlConfigurationPersister.load(DefaultDom4jXmlConfigurationPersister.java:31)
... 16 more
Cause
Confluence can't start due to the special character in the XML file (&). In above scenario, there is a delimiter ';' before zeroDateTimeBehavior
entity.
This has also been observed when special characters are present in the database password string: hibernate.connection.password
Resolution
- Shut down Confluence.
- Open
confluence.cfg.xml
in text editor. - Shut down Confluence.
Edit
<confluence-home>/confluence.cfg.xml
file and change the"hibernate.connection.url"
and remove '&' from the URL:jdbc:mysql://localhost/confluencedb?autoReconnect=true&<EntityFromError>
Please replace
<EntityFromError>
to your entity.- Start Confluence.
- Clear Confluence plugins cache.
- Try to generate backup.