[jboss-jira] [JBoss JIRA] (JBRULES-3460) NPE when using Tabu
Lukáš Petrovický (JIRA)
jira-events at lists.jboss.org
Fri Apr 13 13:49:47 EDT 2012
[ https://issues.jboss.org/browse/JBRULES-3460?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lukáš Petrovický updated JBRULES-3460:
--------------------------------------
Description:
Whenever I configure tabu search (be it solution, move or planning entity) in my acceptor, I get the following NPE:
Exception in thread "main" java.lang.NullPointerException
at org.drools.planner.core.localsearch.decider.acceptor.tabu.AbstractTabuAcceptor.stepTaken(AbstractTabuAcceptor.java:163)
at org.drools.planner.core.localsearch.decider.acceptor.CompositeAcceptor.stepTaken(CompositeAcceptor.java:69)
at org.drools.planner.core.localsearch.decider.DefaultDecider.stepTaken(DefaultDecider.java:166)
at org.drools.planner.core.localsearch.DefaultLocalSearchSolverPhase.stepTaken(DefaultLocalSearchSolverPhase.java:107)
at org.drools.planner.core.localsearch.DefaultLocalSearchSolverPhase.solve(DefaultLocalSearchSolverPhase.java:71)
at org.drools.planner.core.solver.DefaultSolver.runSolverPhases(DefaultSolver.java:183)
at org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:151)
at org.drools.planner.examples.ras2012.App.main(App.java:25)
Looking at the relevant place in code, we find:
Integer oldTabuStepIndexInteger = tabuToStepIndexMap.get(oldTabu);
int oldTabuStepCount = tabuStepIndex - oldTabuStepIndexInteger; // at least 1
It appears that the code doesn't cover the case where tabuToStepIndexMap doesn't contain oldTabu.
Should a reproducer be needed, please look at the following Github repo, configure the solver to use tabus, and launch the application via App.java:
https://github.com/triceo/ras12
was:
Whenever I configure tabu search (be it solution, move or planning entity) in my acceptor, I get the following NPE:
Exception in thread "main" java.lang.NullPointerException
at org.drools.planner.core.localsearch.decider.acceptor.tabu.AbstractTabuAcceptor.stepTaken(AbstractTabuAcceptor.java:163)
at org.drools.planner.core.localsearch.decider.acceptor.CompositeAcceptor.stepTaken(CompositeAcceptor.java:69)
at org.drools.planner.core.localsearch.decider.DefaultDecider.stepTaken(DefaultDecider.java:166)
at org.drools.planner.core.localsearch.DefaultLocalSearchSolverPhase.stepTaken(DefaultLocalSearchSolverPhase.java:107)
at org.drools.planner.core.localsearch.DefaultLocalSearchSolverPhase.solve(DefaultLocalSearchSolverPhase.java:71)
at org.drools.planner.core.solver.DefaultSolver.runSolverPhases(DefaultSolver.java:183)
at org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:151)
at org.drools.planner.examples.ras2012.App.main(App.java:25)
Looking at the relevant place in code, we find:
Integer oldTabuStepIndexInteger = tabuToStepIndexMap.get(oldTabu);
int oldTabuStepCount = tabuStepIndex - oldTabuStepIndexInteger; // at least 1
It appears that the code doesn't cover the situation where tabuToStepIndexMap doesn't cover the case of oldTabu not being present.
Should a reproducer be needed, please look at the following Github repo, configure the solver to use tabus, and launch the application via App.java:
https://github.com/triceo/ras12
> NPE when using Tabu
> -------------------
>
> Key: JBRULES-3460
> URL: https://issues.jboss.org/browse/JBRULES-3460
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: drools-planner
> Environment: java version "1.7.0_b147-icedtea"
> OpenJDK Runtime Environment (fedora-2.1.fc17.2-x86_64)
> OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)
> Reporter: Lukáš Petrovický
> Assignee: Geoffrey De Smet
>
> Whenever I configure tabu search (be it solution, move or planning entity) in my acceptor, I get the following NPE:
> Exception in thread "main" java.lang.NullPointerException
> at org.drools.planner.core.localsearch.decider.acceptor.tabu.AbstractTabuAcceptor.stepTaken(AbstractTabuAcceptor.java:163)
> at org.drools.planner.core.localsearch.decider.acceptor.CompositeAcceptor.stepTaken(CompositeAcceptor.java:69)
> at org.drools.planner.core.localsearch.decider.DefaultDecider.stepTaken(DefaultDecider.java:166)
> at org.drools.planner.core.localsearch.DefaultLocalSearchSolverPhase.stepTaken(DefaultLocalSearchSolverPhase.java:107)
> at org.drools.planner.core.localsearch.DefaultLocalSearchSolverPhase.solve(DefaultLocalSearchSolverPhase.java:71)
> at org.drools.planner.core.solver.DefaultSolver.runSolverPhases(DefaultSolver.java:183)
> at org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:151)
> at org.drools.planner.examples.ras2012.App.main(App.java:25)
> Looking at the relevant place in code, we find:
> Integer oldTabuStepIndexInteger = tabuToStepIndexMap.get(oldTabu);
> int oldTabuStepCount = tabuStepIndex - oldTabuStepIndexInteger; // at least 1
> It appears that the code doesn't cover the case where tabuToStepIndexMap doesn't contain oldTabu.
> Should a reproducer be needed, please look at the following Github repo, configure the solver to use tabus, and launch the application via App.java:
> https://github.com/triceo/ras12
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list