Hi,
We are running Flowable (6.3.1.0) embedded in a Spring Boot app, and everything works fine when running locally for development, but we’ve just tried to deploy it into AWS (using Aurora in MySQL 5.6 mode - we use MySQL 5.6 for local dev), and we get a very strange error on startup:
Caused by: java.lang.NullPointerException: null
at org.flowable.engine.impl.db.ProcessDbSchemaManager.dbSchemaUpdate(ProcessDbSchemaManager.java:184)
at org.flowable.engine.impl.db.ProcessDbSchemaManager.performSchemaOperationsProcessEngineBuild(ProcessDbSchemaManager.java:339)
at org.flowable.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:28)
at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:51)
at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:93)
at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:72)
at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:56)
at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:25)
at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)
at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:71)
at org.flowable.idm.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:49)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
at org.flowable.idm.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:46)
at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)
at org.flowable.engine.impl.ProcessEngineImpl.<init>(ProcessEngineImpl.java:78)
at org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:857)
at org.flowable.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:81)
at org.flowable.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:60)
at org.flowable.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:32)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
... 50 common frames omitted
I can confirm that the ACT_GE_PROPERTY table does not contain a row for schema.version. Full contents of the table are:
‘common.schema.version’, ‘6.3.1.0’, ‘1’
‘identitylink.schema.version’, ‘6.3.1.0’, ‘1’
‘job.schema.version’, ‘6.3.1.0’, ‘1’
‘next.dbid’, ‘1’, ‘1’
‘task.schema.version’, ‘6.3.1.0’, ‘1’
‘variable.schema.version’, ‘6.3.1.0’, ‘1’
If I run our app locally on a dev machine, it starts up fine and schema.version reports correctly as 6.3.1.0.
It’s almost as though the initial schema creation/update on startup failed part way through…? The code (see ProcessDbSchemaManager line 184) clearly does not expect the version property to be nullable.
Can anyone provide any insight into how the schema could get into this state?
Thanks,
Shannon