Upgrade Fails with IllegalStateException, due to Mis-configured FISHEYE_HOME
- You have a FISHEYE_INST Environment variables set up that points to your FISHEYE_HOME directory via a symbolic link or your FISHEYE_INST contains a
- You may also have the FISHEYE_HOME environment variable set up (this should not be set up, as this is just the term used to refer to Fisheye's installation location).
- Crucible fails to start-up with error:
2008-11-06 20:14:18,441 ERROR [main] org.springframework.web.context.ContextLoader org.springframework.web.context.ContextLoader-initWebApplicationContext - Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.IllegalStateException: Annotation-specified bean name 'hostComponentProvider' for bean class [com.atlassian.plugin.spring.SpringHostComponentProvider] conflicts with existing, non-compatible bean definition of same name and class [com.atlassian.plugin.spring.SpringHostComponentProvider] at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
If you do not setup a FISHEYE_INST environment variable FISHEYE_INST directory will default to your FISHEYE_HOME.
The purpose of the FISHEYE_INST directory is to keep a store data in a separate directory to your FISHEYE_HOME (directory that stores your configuration files as well as any unique libraries/customisations that you wish to keep across upgrades).
In most cases, the only things in the FISHEYE_INST directory is the
config.xml file and the
var directory, however in some cases customers may install plugins and wish to keep the libraries required for the installation in their
FISHEYE_INST/lib directory, or may want to customise their content, so they will place their customised content in the
Fisheye will look in the FISHEYE_INST directory for the
config.xml file and
var directory and (if and only if they exist) for the
content directory , as for each of these you can have unique configuration/libraries that you wish to keep across versions (for upgrades).
If you setup a symbolic link for FISHEYE_INST that points to the FISHEYE_HOME, then essentially you will loading your libraries directories twice (because the FISHEYE_INST is set using the symbolic link, Fisheye will not realise that this is in fact the same directory as the FISHEYE_HOME). In the past this has not been a problem, but in 1.6.3 we have added a library that will throw an error if you have duplicate jars.
Remove all reference to the FISHEYE_INST and FISHEYE_HOME (if you have it set up) Environment variables and check if you can reproduce the problem.
If you have a FISHEYE_HOME variable set up (either in your custom script to start crucible or as an environment variable), please ensure that it points to the fully qualified location of your fisheye install (and is not a symbolic/soft link).
FISHEYE_INST is a symbolic link to the FISHEYE_HOME directory (that is, the install directory that you download from www.atlassian.com and unzipped), then please remove the
FISHEYE_INST Environment variables.
FISHEYE_INST has been setup, Fisheye will automatically default to the FISHEYE_HOME directory. Thus there is no need to define the FISHEYE_INST. If you do want to create a separate directory for the
FISHEYE_INST, please follow the instructions in the Upgrade guide to upgrade to a new version and create a new