DefaultSolverScope solverScope = stepScope.getPhaseScope().getSolverScope();
Solution newBestSolution = solverScope.getScoreDirector().cloneWorkingSolution();
bestSolutionRecaller.updateBestSolution(solverScope,
newBestSolution, stepScope.getUninitializedVariableCount());
}
CustomPhaseScope phaseScope = stepScope.getPhaseScope();
if (logger.isDebugEnabled()) {
long timeMillisSpent = phaseScope.calculateSolverTimeMillisSpent();
logger.debug(" Custom step ({}), time spent ({}), score ({}), {} best score ({}).",
stepScope.getStepIndex(), timeMillisSpent,
stepScope.getScore(),
bestScoreImproved ? "new" : (forceUpdateBestSolution ? "forced" : " "),
phaseScope.getBestScoreWithUninitializedPrefix());
}
}