Hi!
If you are using your own jbpm configuration mechanism (e.g. Spring) what may happen is the following:
1.) Spring initialized the Hibernate stuff
2.) The classes get loaded and somehow instantiated once from Hibernate
3.) The BusinessCalender class is created because it is a static attribute of some Hibernate managed classes.
4.) The BusinessCalender wants to load its configuration in the constructor, calling JbpmConfiguration.Configs.getString("resource.business.calendar")
5.) This results in a JbpmConfiguration.getInstance() because the jbpm configurations isn't yet loaded (should be done by Spring AFTER the Hibernate stuff is loaded). This creates a JbpmConfiguration with default properties which nobody wants to have.
Here the code (JbpmConfiguration class)
public abstract static class Configs {
public static ObjectFactory getObjectFactory() {
ObjectFactory objectFactory = null;
JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
if (jbpmContext!=null) {
objectFactory = jbpmContext.objectFactory;
} else {
objectFactory = getInstance().objectFactory;
}
return objectFactory;
}