-
Bug
-
Resolution: Done
-
Critical
-
None
-
None
-
None
-
2019 Week 47-49 (from Nov 18)
-
3
-
NEW
-
NEW
public class Santa2019ConstraintProvider implements ConstraintProvider { @Override public Constraint[] defineConstraints(ConstraintFactory factory) { return new Constraint[] { minimumDayCapacity(factory), maximumDayCapacity(factory), }; } private Constraint minimumDayCapacity(ConstraintFactory factory) { // TODO If a day has no family assigned, it should get a penalty of 125 (currently doesn't happen) return factory.from(Family.class) .groupBy(Family::getDay, sum(Family::getSize)) .filter((day, size) -> size < 125) .penalizeLong("Minimum day capacity", HardSoftLongScore.ONE_HARD, (day, size) -> 125 - size); } private Constraint maximumDayCapacity(ConstraintFactory factory) { return factory.from(Family.class) .groupBy(Family::getDay, sum(Family::getSize)) .filter((day, size) -> size > 300) .penalizeLong("Maximum day capacity", HardSoftLongScore.ONE_HARD, (day, size) -> size - 300); } }
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Solving failed. at org.optaplanner.examples.common.swingui.SolverAndPersistenceFrame$SolveWorker.done(SolverAndPersistenceFrame.java:382) at javax.swing.SwingWorker$5.run(SwingWorker.java:737) at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:832) at sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112) at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:842) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:245) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Caused by: java.lang.RuntimeException: java.lang.ClassCastException: org.optaplannerdelirium.santa2019.domain.Family cannot be cast to java.lang.Integer at org.drools.modelcompiler.constraints.ConstraintEvaluator.evaluate(ConstraintEvaluator.java:78) at org.drools.modelcompiler.constraints.LambdaConstraint.isAllowed(LambdaConstraint.java:115) at org.drools.core.phreak.PhreakFromNode.isAllowed(PhreakFromNode.java:266) at org.drools.core.phreak.PhreakFromNode.doLeftInserts(PhreakFromNode.java:120) at org.drools.core.phreak.PhreakFromNode.doNode(PhreakFromNode.java:68) at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:393) at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:339) at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:175) at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:133) at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:213) at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:88) at org.drools.core.concurrent.AbstractRuleEvaluator.internalEvaluateAndFire(AbstractRuleEvaluator.java:33) at org.drools.core.concurrent.SequentialRuleEvaluator.evaluateAndFire(SequentialRuleEvaluator.java:43) at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1101) at org.drools.core.common.DefaultAgenda.internalFireAllRules(DefaultAgenda.java:1048) at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1040) at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1337) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1328) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1312) at org.optaplanner.core.impl.score.stream.drools.DroolsConstraintSession.calculateScore(DroolsConstraintSession.java:60) at org.optaplanner.core.impl.score.director.stream.ConstraintStreamScoreDirector.calculateScore(ConstraintStreamScoreDirector.java:70) at org.optaplanner.core.impl.score.director.AbstractScoreDirector.doAndProcessMove(AbstractScoreDirector.java:188) at org.optaplanner.core.impl.constructionheuristic.decider.ConstructionHeuristicDecider.doMove(ConstructionHeuristicDecider.java:126) at org.optaplanner.core.impl.constructionheuristic.decider.ConstructionHeuristicDecider.decideNextStep(ConstructionHeuristicDecider.java:100) at org.optaplanner.core.impl.constructionheuristic.DefaultConstructionHeuristicPhase.solve(DefaultConstructionHeuristicPhase.java:74) at org.optaplanner.core.impl.solver.AbstractSolver.runPhases(AbstractSolver.java:88) at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:191) at org.optaplanner.examples.common.business.SolutionBusiness.solve(SolutionBusiness.java:334) at org.optaplanner.examples.common.swingui.SolverAndPersistenceFrame$SolveWorker.doInBackground(SolverAndPersistenceFrame.java:370) at javax.swing.SwingWorker$1.call(SwingWorker.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at javax.swing.SwingWorker.run(SwingWorker.java:334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.ClassCastException: org.optaplannerdelirium.santa2019.domain.Family cannot be cast to java.lang.Integer at org.optaplanner.core.impl.score.stream.drools.bi.DroolsBiCondition.lambda$andFilter$8848e7ce$1(DroolsBiCondition.java:52) at org.drools.model.functions.Predicate3$Impl.test(Predicate3.java:23) at org.drools.model.constraints.SingleConstraint3.lambda$getPredicate$8a56b796$1(SingleConstraint3.java:46) at org.drools.modelcompiler.constraints.ConstraintEvaluator.evaluate(ConstraintEvaluator.java:74) ... 34 more