Closed schneiti closed 2 years ago
I was able to reproduce this issue now on the master branch too without using the docker container.
2022-03-09 02:05:39.009 ERROR 19820 --- [ scheduling-1] c.e.e.c.s.ResultDeliveryStrategyImpl : Unexpected exception when invoking method 'update' on subscriber class 'EsperCEPQueryDispatcher' for parameters [{event_0=MapEventBean eventType=com.espertech.esper.event.map.MapEventType@320faf67}] : IllegalAccessError : failed to access class de.ipvs.as.mbp.service.cep.engine.esper.EsperCEPQueryDispatcher from class de.ipvs.as.mbp.service.cep.engine.esper.EsperCEPQueryDispatcher$$FastClassByCGLIB$$bcc416f0 (de.ipvs.as.mbp.service.cep.engine.esper.EsperCEPQueryDispatcher is in unnamed module of loader 'app'; de.ipvs.as.mbp.service.cep.engine.esper.EsperCEPQueryDispatcher$$FastClassByCGLIB$$bcc416f0 is in unnamed module of loader org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader @5fb5ad40)
The issue does not occur if one calls restarts after the creation and activation of a rule definition. However if one deactivates and activates this rule, then the problem occurs again.
Maybe this warning which appears at the start of spring boot application has something to do with it.
WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by net.sf.cglib.core.ReflectUtils$1 (file:/C:/.../.m2/repository/cglib/cglib-nodep/3.2.5/cglib-nodep-3.2.5.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
Issue fix: Make the EsperCEPQueryDispatcher class public. For some reasons it was not public
It seems to me that the execution of CEP rules does not work at the moment. If a rule should be triggered the following exception is thrown:
This behavior was observed using the dockerized version of the MBP.
I was not able to find a solution for this yet. Looks to me like a more deeply rooted issue with the Springs cglib proxies. No real idea what causes this.