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; }