Camunda Engine Update 7.4.0 to 7.6 Issues

Hello community,

yesterday I tried to update the Camunda engine from 7.4.0 to 7.6.
I will first tell you what I did during the process, then I will come up with the issues I had and what I think may be some kind of inconsistency.

Update Process

First I have to say that I don´t use the identity tables from Camunda (for how far as I know they are optional).
I implement my own user administration.

Updating Database

SQL-script that was already executed:
mssql_engine_7.4.0.sql

I executed the following SQL-scripts in that order:

Update 7.4.0 to 7.4.6

  • mssql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql
  • mssql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql
  • mssql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql
  • mssql_engine_7.4_patch_7.4.5_to_7.4.6.sql
Update 7.4 to 7.5
  • mssql_engine_7.4_to_7.5.sql
Update 7.5 to 7.6
  • mssql_engine_7.5_to_7.6.sql
Issues: The script "mssql_engine_7.4_to_7.5.sql" contains updates regarding identity tables. If one (like me) doesn´t use these tables, he gets errors because of missing tables.

My workaround solution:
I commented out the lines regarding the identity tables.

My questions:
Have I done something wrong during this part of the process?
Would it be possible to create additional update scripts for guys like me that don´t use the identity tables?

Updating classes via Maven

I updated the following dependencies from 7.4 to 7.6 using the variable ${camunda.version}

<dependency>
    <groupId>org.camunda.bpm</groupId>
    <artifactId>camunda-engine</artifactId>
    <version>${camunda.version}</version>
</dependency>
<dependency>
    <groupId>org.camunda.bpm</groupId>
    <artifactId>camunda-engine-spring</artifactId>
    <version>${camunda.version}</version>
</dependency>
<dependency>
    <groupId>org.camunda.bpm</groupId>
    <artifactId>camunda-engine-rest</artifactId>
    <classifier>classes</classifier>
    <version>${camunda.version}</version>
</dependency>
<dependency>
    <groupId>org.camunda.bpm</groupId>
    <artifactId>camunda-engine-plugin-spin</artifactId>
    <version>${camunda.version}</version>
</dependency>

After this I rebuilt my project, but I got the following exception:

2016-12-15T15:50:01,984 WARN  [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.support.AnnotationConfigWebApplicationContext: Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'processEngine': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: org/camunda/commons/utils/cache/Cache
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1517) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:251) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) ~[spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) ~[spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4810) ~[catalina.jar:8.0.30]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) ~[catalina.jar:8.0.30]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[catalina.jar:8.0.30]
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) ~[catalina.jar:8.0.30]
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) ~[catalina.jar:8.0.30]
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) ~[catalina.jar:8.0.30]
	at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1675) ~[catalina.jar:8.0.30]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_74]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_74]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_74]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_74]
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) ~[tomcat-coyote.jar:8.0.30]
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) ~[?:1.8.0_74]
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) ~[?:1.8.0_74]
	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:465) ~[catalina.jar:8.0.30]
	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:415) ~[catalina.jar:8.0.30]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_74]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_74]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_74]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_74]
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) ~[tomcat-coyote.jar:8.0.30]
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) ~[?:1.8.0_74]
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) ~[?:1.8.0_74]
	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) ~[?:1.8.0_74]
	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) ~[?:1.8.0_74]
	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) ~[?:1.8.0_74]
	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401) ~[?:1.8.0_74]
	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) ~[?:1.8.0_74]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_74]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_74]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_74]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_74]
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) ~[?:1.8.0_74]
	at sun.rmi.transport.Transport$1.run(Transport.java:200) ~[?:1.8.0_74]
	at sun.rmi.transport.Transport$1.run(Transport.java:197) ~[?:1.8.0_74]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_74]
	at sun.rmi.transport.Transport.serviceCall(Transport.java:196) ~[?:1.8.0_74]
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) ~[?:1.8.0_74]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) ~[?:1.8.0_74]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) ~[?:1.8.0_74]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_74]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) [?:1.8.0_74]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_74]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_74]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_74]
Caused by: java.lang.NoClassDefFoundError: org/camunda/commons/utils/cache/Cache
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.initFeelEngine(DefaultDmnEngineConfiguration.java:140) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.init(DefaultDmnEngineConfiguration.java:79) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.buildEngine(DefaultDmnEngineConfiguration.java:69) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.initDmnEngine(ProcessEngineConfigurationImpl.java:1799) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.init(ProcessEngineConfigurationImpl.java:672) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:649) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:63) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:52) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:31) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	... 57 more
Caused by: java.lang.ClassNotFoundException: org.camunda.commons.utils.cache.Cache
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) ~[catalina.jar:8.0.30]
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) ~[catalina.jar:8.0.30]
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.initFeelEngine(DefaultDmnEngineConfiguration.java:140) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.init(DefaultDmnEngineConfiguration.java:79) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.buildEngine(DefaultDmnEngineConfiguration.java:69) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.initDmnEngine(ProcessEngineConfigurationImpl.java:1799) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.init(ProcessEngineConfigurationImpl.java:672) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:649) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:63) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:52) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:31) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	... 57 more
2016-12-15T15:50:12,017 INFO  [RMI TCP Connection(3)-127.0.0.1] de.sitefusion.api.services.search.SolrIndexServiceBehavior: Successfully shutdown solr index executor.
2016-12-15T15:50:12,036 DEBUG [RMI TCP Connection(3)-127.0.0.1] de.sitefusion.api.services.LDAPApacheService: Connection to LDAP successful terminated.
2016-12-15T15:50:12,054 ERROR [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.ContextLoader: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'processEngine': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: org/camunda/commons/utils/cache/Cache
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1517) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:251) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) ~[spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) ~[spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4810) ~[catalina.jar:8.0.30]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) ~[catalina.jar:8.0.30]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[catalina.jar:8.0.30]
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) ~[catalina.jar:8.0.30]
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) ~[catalina.jar:8.0.30]
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) ~[catalina.jar:8.0.30]
	at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1675) ~[catalina.jar:8.0.30]
15-Dec-2016 15:50:12.062 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_74]
15-Dec-2016 15:50:12.064 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [/sf] startup failed due to previous errors
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_74]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_74]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_74]
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) ~[tomcat-coyote.jar:8.0.30]
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) ~[?:1.8.0_74]
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) ~[?:1.8.0_74]
	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:465) ~[catalina.jar:8.0.30]
	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:415) ~[catalina.jar:8.0.30]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_74]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_74]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_74]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_74]
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) ~[tomcat-coyote.jar:8.0.30]
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) ~[?:1.8.0_74]
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) ~[?:1.8.0_74]
	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) ~[?:1.8.0_74]
	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) ~[?:1.8.0_74]
	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) ~[?:1.8.0_74]
	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401) ~[?:1.8.0_74]
	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) ~[?:1.8.0_74]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_74]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_74]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_74]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_74]
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) ~[?:1.8.0_74]
	at sun.rmi.transport.Transport$1.run(Transport.java:200) ~[?:1.8.0_74]
	at sun.rmi.transport.Transport$1.run(Transport.java:197) ~[?:1.8.0_74]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_74]
	at sun.rmi.transport.Transport.serviceCall(Transport.java:196) ~[?:1.8.0_74]
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) ~[?:1.8.0_74]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) ~[?:1.8.0_74]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) ~[?:1.8.0_74]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_74]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) [?:1.8.0_74]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_74]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_74]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_74]
Caused by: java.lang.NoClassDefFoundError: org/camunda/commons/utils/cache/Cache
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.initFeelEngine(DefaultDmnEngineConfiguration.java:140) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.init(DefaultDmnEngineConfiguration.java:79) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.buildEngine(DefaultDmnEngineConfiguration.java:69) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.initDmnEngine(ProcessEngineConfigurationImpl.java:1799) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.init(ProcessEngineConfigurationImpl.java:672) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:649) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:63) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:52) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:31) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	... 57 more
Caused by: java.lang.ClassNotFoundException: org.camunda.commons.utils.cache.Cache
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) ~[catalina.jar:8.0.30]
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) ~[catalina.jar:8.0.30]
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.initFeelEngine(DefaultDmnEngineConfiguration.java:140) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.init(DefaultDmnEngineConfiguration.java:79) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngineConfiguration.buildEngine(DefaultDmnEngineConfiguration.java:69) ~[camunda-engine-dmn-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.initDmnEngine(ProcessEngineConfigurationImpl.java:1799) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.init(ProcessEngineConfigurationImpl.java:672) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:649) ~[camunda-engine-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:63) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:52) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.camunda.bpm.engine.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:31) ~[camunda-engine-spring-7.6.0.jar:7.6.0]
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	... 57 more

After some research I figured out that one library (org.camunda.commons.utils) was not updated (from 1.2 to 1.4) during the process and because of this the class org.camunda.commons.utils.cache.Cache does not exist.
I looked up the pom.xml here: camunda-engine-7.6.0.jar\META-INF\maven\org.camunda.bpm\camunda-engine\pom.xml and I could not find any dependency on org.camunda.commons.utils.

My questions:
Have I done something wrong or did I miss something?
Could it be that the dependency is missing or is it a dependency of another pom?

I hope that I gave you all the information you need. If you still have questions feel free to ask me.
I hope you can help me with that.

Greetings from Germany,
Stefan Geiß

Hi @stefan_geiss,

You could disable that check by setting the process engine configuration flag isDbIdentityUsed to false. Then the check is not performed anymore and you should not get that exception anymore.

The recommendation is to use the camunda-bom to ensure correct versions of Camunda projects:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-bom</artifactId>
      <version>${camunda.version}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>

Does it help you?

Cheers,
Roman

1 Like

Hi @roman.smirnov,

thank you for your fast reply. :slight_smile:

I think you maybe have misunderstood the problem. We already have set this configuration flag. The problem is that this SQL-script that updates the database to the new version contains SQL-commands regarding these identity tables. So if I run the script, I get an error that there´s a table missing (because I didn´t create the identity tables in the first place).

That´s a very nice hint, but unfortunately my company wants to keep track of the used versions themselves, so sadly I can´t use the camunda-bom dependency.

Cheers,
Stefan

Hi @stefan_geiss,

I see…but I think providing different upgrade scripts for different configurations would make it hard to maintain all the upgrade scripts. These requires a lot of effort and as far as I see this was the first time where we have done some changes to the identity tables and I do not think, that there will be further changes in the future. In that case I would just comment such lines out. This is the easiest and fastest way, I think.

Can you please execute mvn dependency:tree in your project?

Cheers,
Roman

1 Like

Hi @roman.smirnov,

ok, then I leave the script as it is with the commented out lines. That´s fine then. :slight_smile:

Yes I can, but I´m not allowed to send this kind of data to anybody.
Even if it´s recommended to use the camunda-bom dependency, the other dependencies also have to work.
In the end I see two possibilities:

  1. It´s a “bug” that the org.camunda.commons.utils dependency is missing in the camunda-engine pom.xml
  2. It´s not a “bug”, because of the fact that we don´t use the camunda-bom dependency, we have to deal with this kind of problems and add the dependency ourselves.

But as far as I can imagine, number two will be the one that´s correct. :wink:

Cheers,
Stefan

You are right :wink:

Cheers,
Roman

1 Like

Ok, thanks for your help. :relaxed:

Cheers,
Stefan