As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
16-08-2011 10:29:37 Bootstrap [FATAL] Couldn't initialize Activiti Engine java.lang.NullPointerException at org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:620) at org.activiti.engine.impl.db.DbSqlSession.performSchemaOperationsProcessEngineBuild(DbSqlSession.java:872) at org.activiti.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:25) at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24) at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42) at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33) at org.activiti.engine.impl.ProcessEngineImpl.<init>(ProcessEngineImpl.java:77) at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:280) at com.me.gae.servlet.Bootstrap.initActiviti(Bootstrap.java:67)
<br>org.apache.commons.dbcp.BasicDataSource bds = new org.apache.commons.dbcp.BasicDataSource();<br> bds.setDefaultAutoCommit(false); //FIXME: make me configurable<br> bds.setUsername(ApplicationConfig.getEncryptedConfigParamDecrypted("activiti.username"));<br> bds.setPassword(ApplicationConfig.getEncryptedConfigParamDecrypted("activiti.password"));<br> bds.setDriverClassName(ApplicationConfig.getConfigParam("activiti.driverClassName"));<br> bds.setUrl(ApplicationConfig.getConfigParam("activiti.url"));<br><br> ProcessEngine processEngine = ProcessEngineConfiguration<br> .createStandaloneProcessEngineConfiguration()<br> .setDataSource(bds) .setJdbcMaxActiveConnections(Integer.parseInt(ApplicationConfig.getConfigParam("activiti.jdbcMaxActiveConnections")))<br> .setJdbcMaxIdleConnections(Integer.parseInt(ApplicationConfig.getConfigParam("activiti.jdbcMaxIdleConnections")))<br> .setDatabaseType(ApplicationConfig.getConfigParam("activiti.databaseType"))<br> .setDatabaseSchemaUpdate(ApplicationConfig.getConfigParam("activiti.databaseSchemaUpdate"))<br> .setHistory(ApplicationConfig.getConfigParam("activiti.history"))<br> .setProcessEngineName(ACTIVITI_ENGINE_NAME)<br> .setJobExecutorActivate(false) //FIXME: make me configurable<br> .buildProcessEngine();<br><br> ProcessEngines.registerProcessEngine(processEngine);<br><br>
<br>public void dbSchemaUpdate() {<br> String dbVersion = null;<br> <br> boolean isUpgradeNeeded = false;<br> <br> if (isEngineTablePresent()) {<br> // the next piece assumes both DB version and library versions are formatted 5.x<br> PropertyEntity dbVersionProperty = selectById(PropertyEntity.class, "schema.version");<br> dbVersion = dbVersionProperty.getValue();<br> isUpgradeNeeded = !ProcessEngine.VERSION.equals(dbVersion);<br> <br> if (isUpgradeNeeded) {<br> dbVersionProperty.setValue(ProcessEngine.VERSION);<br><br> PropertyEntity dbHistoryProperty;<br> if ("5.0".equals(dbVersion)) {<br> dbHistoryProperty = new PropertyEntity("schema.history", "create(5.0)");<br> insert(dbHistoryProperty);<br> } else {<br> dbHistoryProperty = selectById(PropertyEntity.class, "schema.history");<br> }<br> <br> String dbHistoryValue = dbHistoryProperty.getValue()+" upgrade("+dbVersion+"->"+ProcessEngine.VERSION+")";<br> dbHistoryProperty.setValue(dbHistoryValue);<br> <br> dbSchemaUpgrade("engine", dbVersion);<br> }<br> } else {<br> dbSchemaCreateEngine();<br> }<br> <br> if (isHistoryTablePresent()) {<br> if (isUpgradeNeeded) {<br> dbSchemaUpgrade("history", dbVersion);<br> }<br> } else if (dbSqlSessionFactory.isDbHistoryUsed()) {<br> dbSchemaCreateHistory();<br> }<br> <br> if (isIdentityTablePresent()) {<br> if (isUpgradeNeeded) {<br> dbSchemaUpgrade("identity", dbVersion);<br> }<br> } else if (dbSqlSessionFactory.isDbIdentityUsed()) {<br> dbSchemaCreateIdentity();<br> }<br> <br> if (isCycleTablePresent()) {<br> if (isUpgradeNeeded) {<br> dbSchemaUpgrade("cycle", dbVersion);<br> }<br> } else if (dbSqlSessionFactory.isDbCycleUsed()) {<br> dbSchemaCreateCycle();<br> }<br> }<br>