code: protected void assertWorkingSolutionInitialized(AbstractPhaseScope<Solution_> phaseScope) {
          if (!phaseScope.getStartingScore().isSolutionInitialized()) {
              InnerScoreDirector<Solution_> scoreDirector = phaseScope.getScoreDirector();
              SolutionDescriptor<Solution_> solutionDescriptor = scoreDirector.getSolutionDescriptor();
              Solution_ workingSolution = scoreDirector.getWorkingSolution();
              for (Iterator<Object> it = solutionDescriptor.extractAllEntitiesIterator(workingSolution); it.hasNext();) {
                  Object entity = it.next();
                  EntityDescriptor<Solution_> entityDescriptor = solutionDescriptor.findEntityDescriptorOrFail(
                          entity.getClass());
                  if (!entityDescriptor.isEntityInitializedOrImmovable(scoreDirector, entity)) {
                      String variableRef = null;
                      for (GenuineVariableDescriptor<Solution_> variableDescriptor : entityDescriptor.getGenuineVariableDescriptors()) {
                          if (!variableDescriptor.isInitialized(entity)) {
                              variableRef = variableDescriptor.getSimpleEntityAndVariableName();
                              break;
                          }
                      }
                      throw new IllegalStateException(getPhaseTypeString() + " phase (" + phaseIndex
                              + ") needs to start from an initialized solution, but the planning variable (" + variableRef
                              + ") is uninitialized for the entity (" +  entity + ").\n"
                              + "Maybe there is no Construction Heuristic configured before this phase to initialize the solution.\n"
                              + "Or maybe the getter/setters of your planning variables in your domain classes aren't implemented correctly.");
                  }
              }
          }
      }
docs: ************************************************************************