Kemal Taskiran
Kemal Taskiran

Reputation: 311

Hybris rule engine not invokes promotions

When we want to invoke a promotion in clustered environment, we get an exception. It looks like a maven dependency problem with wrong protobuf-java library version. But we couldn't find a solution to fix.

Similar problem:

http://drools-moved.46999.n3.nabble.com/Upgrade-to-protobuf-2-5-and-how-to-work-with-Protobuf-td4023028.html

INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 | ESC[mException in           thread "AfterSaveEventPublisher-master" java.lang.VerifyError: class org.drools.compiler.kie.builder.impl.KieModuleCache$KModuleCache overrides final method getUnknownFields.()Lcom/google/protobuf/UnknownFieldSet;
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.lang.ClassLoader.defineClass1(Native Method)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.security.AccessController.doPrivileged(Native Method)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at de.hybris.bootstrap.loader.YURLClassLoader.loadRegisterAndResolveClass(YURLClassLoader.java:85)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at de.hybris.bootstrap.loader.YURLClassLoader.loadClass(YURLClassLoader.java:72)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at org.drools.compiler.kie.builder.impl.KieMetaInfoBuilder.createCacheBuilder(KieMetaInfoBuilder.java:119)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at org.drools.compiler.kie.builder.impl.KieMetaInfoBuilder.generateKieModuleMetaInfo(KieMetaInfoBuilder.java:72)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at org.drools.compiler.kie.builder.impl.KieMetaInfoBuilder.writeKieModuleMetaInfo(KieMetaInfoBuilder.java:54)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:233)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:197)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at de.hybris.platform.ruleengine.init.impl.DefaultRuleEngineKieModuleSwapper.createKieModule(DefaultRuleEngineKieModuleSwapper.java:276)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at de.hybris.platform.ruleengine.init.impl.DefaultRuleEngineBootstrap.startup(DefaultRuleEngineBootstrap.java:73)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at de.hybris.platform.ruleengine.event.OnTenantStartupProcessor.lambda$0(OnTenantStartupProcessor.java:103)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at java.util.ArrayList.forEach(ArrayList.java:1255)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at de.hybris.platform.ruleengine.event.OnTenantStartupProcessor.activateRulesModules(OnTenantStartupProcessor.java:103)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at de.hybris.platform.ruleengine.event.OnTenantStartupProcessor.processOnTenantStartup(OnTenantStartupProcessor.java:74)
INFO   | jvm 1    | main    | 2018/01/16 22:13:26.793 |         at de.hybris.platform.ruleengine.event.OnTenantStartupProcessor$DefaultRuleEngineTenantListener.afterTenantStartUp(OnTenantStartupProcessor.java:

Upvotes: 1

Views: 2118

Answers (1)

Kemal Taskiran
Kemal Taskiran

Reputation: 311

When making ant production, the order of extensions is created changing. There are two Protobuf jars, for solr and ruleengine. Solr based protbuf version is 2.5 and there is problem with rule engine.

Possible solution is replace the localextions.xml generated after "ant production" with the original one. Then, start server successfully.

Upvotes: 2

Related Questions