What steps will reproduce the problem? 1. Load and initial state and use a solver to solve it. Solver.hasFlaws() correctly returns false. 2. Add something (for example, parse some new NDDL). 3. Solver.hasFlaws() INCORRECTLY return false.
The problem is that the solver has an internal variable m_noFlawsFound that has no way of knowing that things have changed (so it becomes stale).
An obvious solution is to remove that variable, and force the code to recheck every time hasFlaws() is called - ie call allocateNewDecisionPoint(). However, this doesn't feel like a method that should have side effects. A discussion is currently under way on the developers mailing list....
Comment #1
Posted on Aug 11, 2009 by Happy Ox(No comment was entered for this change.)
Comment #2
Posted on Nov 22, 2010 by Happy Ox(No comment was entered for this change.)
Comment #3
Posted on Aug 17, 2011 by Happy Ox(No comment was entered for this change.)
Comment #4
Posted on May 30, 2012 by Happy Ox(No comment was entered for this change.)
Comment #5
Posted on Sep 22, 2014 by Swift HippoAddressed in r6751 by adding a FlawManager::noMoreFlaws method and various implementations.
Status: Fixed
Labels:
Type-Defect
Priority-Medium
Component-Solver
Milestone-EUROPA-2.7