-
Bug
-
Resolution: Cannot Reproduce
-
Major
-
None
-
7.68.0.Final
-
None
-
2022 Week 17-19 (from Apr 25)
-
-
-
Low
-
NEW
-
NEW
-
---
-
---
We are successfully using Drools engine version 7.51. However, we have been unable to update to any later releases because of commit 54c3bf1a0b. Specifically this line:
@@ -246,6 +257,6 @@ public class EvaluatorWrapper private static InternalFactHandle getFactHandle( Declaration declaration, InternalFactHandle[] handles ) { - return handles != null && handles.length > declaration.getOffset() ? handles[declaration.getOffset()] : null; + return handles[declaration.getObjectIndex()]; } }
Because of that we are getting these exceptions:
2022-04-06 11:19:11,170 ERROR SYSTEM linux/new_process/impacket_usage/detect_impacket_usage BATCH:NONE - [232/1968] Test failed: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at org.drools.core.base.EvaluatorWrapper.getFactHandle(EvaluatorWrapper.java:260) at org.drools.core.base.EvaluatorWrapper.loadHandles(EvaluatorWrapper.java:219) at org.drools.core.rule.constraint.EvaluatorHelper.initOperators(EvaluatorHelper.java:54) at ConditionEvaluator34abbf38350b490c8789d556d5011762.evaluate(Unknown Source) at org.drools.mvel.MVELConstraint.evaluate(MVELConstraint.java:284) at org.drools.mvel.MVELConstraint.isAllowed(MVELConstraint.java:234) at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:134) at org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:742) at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:595) at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:297) at org.drools.core.phreak.PropagationEntry$Insert.propagate(PropagationEntry.java:162) at org.drools.core.phreak.PropagationEntry$Insert.execute(PropagationEntry.java:167) at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:100) at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:95) at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:853) at org.drools.core.common.DefaultAgenda.internalFireAllRules(DefaultAgenda.java:816) at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:808) at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1343) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1334) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1318) at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:294) at com.fsecure.atp.rules.engine.drools.StatelessKieSessionEventProcessor.lambda$executeRules$2(StatelessKieSessionEventProcessor.java:46) at com.fsecure.atp.config.XRay.wrapIn(XRay.java:266) at com.fsecure.atp.rules.engine.drools.StatelessKieSessionEventProcessor.executeRules(StatelessKieSessionEventProcessor.java:46) at com.fsecure.atp.rules.engine.drools.KieSessionEventProcessor.lambda$internalProcess$1(KieSessionEventProcessor.java:126) at com.fsecure.atp.config.XRay.wrapIn(XRay.java:266) at com.fsecure.atp.rules.engine.drools.KieSessionEventProcessor.internalProcess(KieSessionEventProcessor.java:126) at com.fsecure.atp.rules.engine.drools.KieSessionEventProcessor.process(KieSessionEventProcessor.java:104) at com.fsecure.atp.rules.stream.EventProcessorSupport.fireEvent(EventProcessorSupport.java:29) at com.fsecure.atp.rules.stream.AbstractEventStreamHandler.fireEvent(AbstractEventStreamHandler.java:34) at com.fsecure.atp.rules.stream.direct.DirectEventStreamReader.push(DirectEventStreamReader.java:36) at com.fsecure.atp.rules.stream.direct.DirectEventStreamReader.push(DirectEventStreamReader.java:32) at com.fsecure.atp.kie.rules.test.support.EventProducer.publish(EventProducer.java:41) at com.fsecure.atp.kie.rules.test.support.groovy.GroovyTestSpecRunner.runTestSpec(GroovyTestSpecRunner.java:187) at com.fsecure.atp.kie.rules.test.support.groovy.RuleTest.test(RuleTest.java:76) at jdk.internal.reflect.GeneratedMethodAccessor91.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135) at org.testng.internal.invokers.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:44) at org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:72) at org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:10) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)
Putting the length check back would make it possible for us to upgrade to 7.68.
- is related to
-
DROOLS-7366 str operator with bind variable fails after mvel jitting
- Resolved