Fisheye does not restart after upgrading it due to "'#{T(com.cenqua.crucible.hibernate.AspectOrder).TRANSACTIONAL}' is not a valid value for 'integer'"
Problem
After upgrading Fisheye/Crucible to the version 3.10.x (or later), Fisheye/Crucible user interface cannot be accessed.
The following appears in the atlassian-fisheye-YYYY-MM-DD.log
ERROR [main ] org.springframework.web.context.ContextLoader ContextLoader-initWebApplicationContext - Context initialization failed
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 91 in XML document from ServletContext resource [/WEB-INF/applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 91; columnNumber: 130; cvc-datatype-valid.1.2.1: '#{T(com.cenqua.crucible.hibernate.AspectOrder).TRANSACTIONAL}' is not a valid value for 'integer'.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
...
Caused by: org.xml.sax.SAXParseException; lineNumber: 91; columnNumber: 130; cvc-datatype-valid.1.2.1: '#{T(com.cenqua.crucible.hibernate.AspectOrder).TRANSACTIONAL}' is not a valid value for 'integer'.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
Diagnosis
Environment
- Fisheye/Crucible current version (prior to the upgrade) is <= 3.9.x
- Fisheye/Crucible new version (after the upgrade) is >= 3.10.x
Cause
As part of the changes included in the Fisheye/Crucible version 3.10.x, the schema used to validate the applicationContext.xml file changed. Up until 3.9.x the spring-tx-2.5.xsd
one was used, since 3.10.x spring-tx-4.0.xsd
is used.
If the Fisheye classpath contains a jar file referencing the spring-tx-2.5.xsd
schema, this conflict arises and Fisheye does not start.
Resolution
Remove the jar files containing an instance of the outdated schema by following the steps below:
- Check the content of the
$FISHEYE_INST/lib
folder (this should only contain "custom extensions" and/or "custom DB drivers" jar files)- Locate all the files that are not "custom extensions" and/or "custom DB drivers"
- Stop Fisheye/Crucible
Remove the unwanted files, in particular make sure that no files with a file name starting with
org.springframework
are contained in this folderRestart Fisheye/Crucible