java - Optaplanner solving failed "illegal state exception" -


i new optaplanner , trying better learn how use changing around dinner party example solve different type of problem. added new score rule called samesleepingpreference, uses new enum created called sleepingpreference property of guest. people have same sleeping preference put next each other.

rule "samesleepingpreference"     when         $leftdesignation : seatdesignation($leftguest : guest)         $rightdesignation : seatdesignation(isrightof($leftdesignation), $rightguest : guest)         eval($leftguest.sleepingpreference.equals($rightguest.sleepingpreference))             scoreholder.addconstraintmatch(kcontext, +1); end  

when try run optaplanner using data sheet of 4 people, example works fine. however, made longer list of 144 people changing around 1 of original data sheets dinner party example, , gives me error:

2015-07-23 10:41:59,414 [awt-eventqueue-0] info opened: data\dinnerparty\unsolved\hannahweddingtest.xml 2015-07-23 10:42:01,012 [swingworker-pool-4-thread-1] info solving started: time spent (97), best score (uninitialized/-14400), environment mode (reproducible), random (jdk seed 0). exception in thread "awt-eventqueue-0" java.lang.illegalstateexception: solving failed. @ org.optaplanner.examples.common.swingui.solverandpersistenceframe$solveworker.done(solverandpersistenceframe.java:297) @ javax.swing.swingworker$5.run(unknown source) @ javax.swing.swingworker$dosubmitaccumulativerunnable.run(unknown source) @ sun.swing.accumulativerunnable.run(unknown source) @ javax.swing.swingworker$dosubmitaccumulativerunnable.actionperformed(unknown source) @ javax.swing.timer.fireactionperformed(unknown source) @ javax.swing.timer$dopostevent.run(unknown source) @ java.awt.event.invocationevent.dispatch(unknown source) @ java.awt.eventqueue.dispatcheventimpl(unknown source) @ java.awt.eventqueue.access$300(unknown source) @ java.awt.eventqueue$3.run(unknown source) @ java.awt.eventqueue$3.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$1.dointersectionprivilege(unknown source) @ java.awt.eventqueue.dispatchevent(unknown source) @ java.awt.eventdispatchthread.pumponeeventforfilters(unknown source) @ java.awt.eventdispatchthread.pumpeventsforfilter(unknown source) @ java.awt.eventdispatchthread.pumpeventsforhierarchy(unknown source) @ java.awt.eventdispatchthread.pumpevents(unknown source) @ java.awt.eventdispatchthread.pumpevents(unknown source) @ java.awt.eventdispatchthread.run(unknown source) caused by: java.lang.runtimeexception: org.optaplanner.examples.dinnerparty.solver.rule_samesleepingpreference1438171934eval0invoker@a59a25b3 : java.lang.nullpointerexception @ org.drools.core.rule.evalcondition.isallowed(evalcondition.java:123) @ org.drools.core.phreak.phreakevalnode.doleftinserts(phreakevalnode.java:55) @ org.drools.core.phreak.phreakevalnode.donode(phreakevalnode.java:39) @ org.drools.core.phreak.rulenetworkevaluator.innereval(rulenetworkevaluator.java:342) @ org.drools.core.phreak.rulenetworkevaluator.outereval(rulenetworkevaluator.java:161) @ org.drools.core.phreak.rulenetworkevaluator.evaluatenetwork(rulenetworkevaluator.java:116) @ org.drools.core.phreak.ruleexecutor.reevaluatenetwork(ruleexecutor.java:231) @ org.drools.core.phreak.ruleexecutor.evaluatenetworkandfire(ruleexecutor.java:106) @ org.drools.core.common.defaultagenda.firenextitem(defaultagenda.java:1016) @ org.drools.core.common.defaultagenda.fireallrules(defaultagenda.java:1302) @ org.drools.core.impl.statefulknowledgesessionimpl.fireallrules(statefulknowledgesessionimpl.java:1289) @ org.drools.core.impl.statefulknowledgesessionimpl.fireallrules(statefulknowledgesessionimpl.java:1262) @ org.optaplanner.core.impl.score.director.drools.droolsscoredirector.calculatescore(droolsscoredirector.java:87) @ org.optaplanner.examples.dinnerparty.solver.solution.initializer.dinnerpartysolutioninitializer.initializeseatdesignationlist(dinnerpartysolutioninitializer.java:69) @ org.optaplanner.examples.dinnerparty.solver.solution.initializer.dinnerpartysolutioninitializer.changeworkingsolution(dinnerpartysolutioninitializer.java:41) @ org.optaplanner.core.impl.phase.custom.defaultcustomphase.dostep(defaultcustomphase.java:78) @ org.optaplanner.core.impl.phase.custom.defaultcustomphase.solve(defaultcustomphase.java:60) @ org.optaplanner.core.impl.solver.defaultsolver.runphases(defaultsolver.java:213) @ org.optaplanner.core.impl.solver.defaultsolver.solve(defaultsolver.java:176) @ org.optaplanner.examples.common.business.solutionbusiness.solve(solutionbusiness.java:302) @ org.optaplanner.examples.common.swingui.solverandpersistenceframe$solveworker.doinbackground(solverandpersistenceframe.java:286) @ org.optaplanner.examples.common.swingui.solverandpersistenceframe$solveworker.doinbackground(solverandpersistenceframe.java:1) @ javax.swing.swingworker$1.call(unknown source) @ java.util.concurrent.futuretask.run(unknown source) @ javax.swing.swingworker.run(unknown source) @ java.util.concurrent.threadpoolexecutor.runworker(unknown source) @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source) @ java.lang.thread.run(unknown source) caused by: java.lang.nullpointerexception @ org.optaplanner.examples.dinnerparty.solver.rule_samesleepingpreference1438171934.eval0(rule_samesleepingpreference1438171934.java:8) @ org.optaplanner.examples.dinnerparty.solver.rule_samesleepingpreference1438171934eval0invokergenerated.evaluate(unknown source) @ org.optaplanner.examples.dinnerparty.solver.rule_samesleepingpreference1438171934eval0invoker.evaluate(unknown source) @ org.drools.core.rule.evalcondition.isallowed(evalcondition.java:118) ... 27 more

is example of 144 people impossible solve, or there different problem? have tried making sleeping preference rule add points , subtract points score, (i using simple score) both cause program fail.

this recommended way write rule, "eval" deprecated , drools =='s turn equal calls:

rule "samesleepingpreference" when     $leftdesignation : seatdesignation($leftguest : guest)     $rightdesignation : seatdesignation(isrightof($leftdesignation), $leftguest.sleepingpreference == guest.sleepingpreference)     scoreholder.addconstraintmatch(kcontext, +1);  end  

Comments

Popular posts from this blog

javascript - Karma not able to start PhantomJS on Windows - Error: spawn UNKNOWN -

Nuget pack csproj using nuspec -

c# - Display ASPX Popup control in RowDeleteing Event (ASPX Gridview) -