Uploaded image for project: 'OptaPlanner'
  1. OptaPlanner
  2. PLANNER-2834

ClassCastException in ConstraintStreamImplType.DROOLS

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • optaplanner-core
    • None
    • 8
    • NEW
    • NEW

      Reproducer: https://github.com/Christopher-Chianelli/issue-reproducer/tree/drools-exception-in-std-dev-calc

       

      ConstraintStreamImplType.BAVET works; ConstraintStreamImplType.DROOLS throws the following exception:

      ```

      java.lang.ClassCastException: class org.drools.core.reteoo.AccumulateNode$GroupByContext cannot be cast to class org.drools.core.reteoo.AccumulateNode$AccumulateContextEntry (org.drools.core.reteoo.AccumulateNode$GroupByContext and org.drools.core.reteoo.AccumulateNode$AccumulateContextEntry are in unnamed module of loader io.quarkus.bootstrap.classloading.QuarkusClassLoader @1060b431)
          at org.drools.core.phreak.PhreakAccumulateNode.reinit(PhreakAccumulateNode.java:881)
          at org.drools.core.phreak.PhreakAccumulateNode.reaccumulateForLeftTuple(PhreakAccumulateNode.java:813)
          at org.drools.core.phreak.PhreakGroupByNode.reaccumulateForLeftTuple(PhreakGroupByNode.java:123)
          at org.drools.core.phreak.PhreakAccumulateNode.doLeftUpdatesProcessChildren(PhreakAccumulateNode.java:392)
          at org.drools.core.phreak.PhreakAccumulateNode.doLeftUpdates(PhreakAccumulateNode.java:315)
          at org.drools.core.phreak.PhreakAccumulateNode.doNode(PhreakAccumulateNode.java:78)
          at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:590)
          at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:559)
          at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:386)
          at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:346)
          at org.drools.core.phreak.RuleNetworkEvaluator.doRiaNode(RuleNetworkEvaluator.java:631)
          at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:554)
          at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:386)
          at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:346)
          at org.drools.core.phreak.RuleNetworkEvaluator.doRiaNode(RuleNetworkEvaluator.java:631)
          at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:554)
          at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:386)
          at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:346)
          at org.drools.core.phreak.RuleNetworkEvaluator.evalStackEntry(RuleNetworkEvaluator.java:244)
          at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:187)
          at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:140)
          at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:234)
          at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:90)
          at org.drools.core.concurrent.AbstractRuleEvaluator.internalEvaluateAndFire(AbstractRuleEvaluator.java:33)
          at org.drools.core.concurrent.SequentialRuleEvaluator.evaluateAndFire(SequentialRuleEvaluator.java:43)
          at org.drools.kiesession.agenda.DefaultAgenda.fireLoop(DefaultAgenda.java:748)
          at org.drools.kiesession.agenda.DefaultAgenda.internalFireAllRules(DefaultAgenda.java:695)
          at org.drools.kiesession.agenda.DefaultAgenda.fireAllRules(DefaultAgenda.java:687)
          at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1092)
          at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1083)
          at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1075)
          at org.optaplanner.constraint.streams.drools.DroolsConstraintStreamScoreDirector.calculateScore(DroolsConstraintStreamScoreDirector.java:70)
          at org.optaplanner.core.impl.score.director.AbstractScoreDirector.doAndProcessMove(AbstractScoreDirector.java:206)
          at org.optaplanner.core.impl.constructionheuristic.decider.ConstructionHeuristicDecider.doMove(ConstructionHeuristicDecider.java:116)
          at org.optaplanner.core.impl.constructionheuristic.decider.ConstructionHeuristicDecider.decideNextStep(ConstructionHeuristicDecider.java:90)
          at org.optaplanner.core.impl.constructionheuristic.DefaultConstructionHeuristicPhase.solve(DefaultConstructionHeuristicPhase.java:48)
          at org.optaplanner.core.impl.solver.AbstractSolver.runPhases(AbstractSolver.java:83)
          at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:193)
          at org.optaplanner.issue.reproducer.IssueReproducerApplication.onStart(IssueReproducerApplication.java:57)
          at org.optaplanner.issue.reproducer.IssueReproducerApplication_Subclass.onStart$$superforward1(Unknown Source)
          at org.optaplanner.issue.reproducer.IssueReproducerApplication_Subclass$$function$$1.apply(Unknown Source)
          at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:53)
          at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.proceed(InvocationInterceptor.java:62)
          at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.monitor(InvocationInterceptor.java:49)
          at io.quarkus.arc.runtime.devconsole.InvocationInterceptor_Bean.intercept(Unknown Source)
          at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:41)
          at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:40)
          at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:32)
          at org.optaplanner.issue.reproducer.IssueReproducerApplication_Subclass.onStart(Unknown Source)
          at org.optaplanner.issue.reproducer.IssueReproducerApplication_Observer_onStart_4892b1d0ee4bea04e27abfffb4ce5dc82df9f266.notify(Unknown Source)
          at io.quarkus.arc.impl.EventImpl$Notifier.notifyObservers(EventImpl.java:323)
          at io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:305)
          at io.quarkus.arc.impl.EventImpl.fire(EventImpl.java:73)
          at io.quarkus.arc.runtime.ArcRecorder.fireLifecycleEvent(ArcRecorder.java:131)
          at io.quarkus.arc.runtime.ArcRecorder.handleLifecycleEvents(ArcRecorder.java:100)
          at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent1144526294.deploy_0(Unknown Source)
          at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent1144526294.deploy(Unknown Source)
          at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
          at io.quarkus.runtime.Application.start(Application.java:101)
          at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:110)
          at io.quarkus.runtime.Quarkus.run(Quarkus.java:69)
          at io.quarkus.runtime.Quarkus.run(Quarkus.java:42)
          at io.quarkus.runtime.Quarkus.run(Quarkus.java:122)
          at io.quarkus.runner.GeneratedMain.main(Unknown Source)
          at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
          at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.base/java.lang.reflect.Method.invoke(Method.java:568)
          at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:103)
          at java.base/java.lang.Thread.run(Thread.java:833)

      ```

              Unassigned Unassigned
              cchianel Christopher Chianelli (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: