I have a problem which is probably related to Gemini not being configured correctly. Whenever I start our application, either it runs fine or an exception happens. If an exception happened, it will happen with every start from that on. Now most of the time, restarting Eclipse helped, but today it didn't. Neither did restarting the PC, deleting the workspaces temp folders or using "clean".

I assume it has something to do with the plug-ins being activated in the wrong order, but I really have no idea since the error message is quite cryptic. Could someone explain what is happening?

Update: In that case the problem seemed to be a faulty import (org.apache.lang instead of org.apache.lang3), so it's just Gemini's way of obsuring the framework exceptions. We haven't found out the cause for the error that occurs sporadically, so any help in configuring Gemini properly would be appreciated.

For completeness, the error log for the sporadic error looks like this (i.e. similar to above, and as above the dependencies are bogus):

java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: OsgiBundleXmlApplicationContext(bundle=com.qualitype.chimeraproof.genetics.ref.service.impl, config=osgibundle:/META-INF/spring/*.xml): startup date [Mon Jan 07 11:45:03 CET 2013]; root of context hierarchy
at org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.java:337)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:324)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1025)
at org.eclipse.gemini.blueprint.context.support.AbstractOsgiBundleApplicationContext.doClose(AbstractOsgiBundleApplicationContext.java:187)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$501(AbstractDelegatedExecutionApplicationContext.java:60)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$2.run(AbstractDelegatedExecutionApplicationContext.java:194)
at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.normalClose(AbstractDelegatedExecutionApplicationContext.java:190)
at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.close(DependencyWaiterApplicationContextExecutor.java:382)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.doClose(AbstractDelegatedExecutionApplicationContext.java:214)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:988)
at org.eclipse.gemini.blueprint.extender.internal.activator.LifecycleManager.closeApplicationContext(LifecycleManager.java:316)
at org.eclipse.gemini.blueprint.extender.internal.activator.LifecycleManager.access$200(LifecycleManager.java:54)
at org.eclipse.gemini.blueprint.extender.internal.activator.LifecycleManager$3.run(LifecycleManager.java:364)
at org.eclipse.gemini.blueprint.extender.internal.util.concurrent.RunnableTimedExecution$MonitoredRunnable.run(RunnableTimedExecution.java:55)
at org.springframework.scheduling.timer.DelegatingTimerTask.run(DelegatingTimerTask.java:70)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)