code: public void setCurrentSolution(SolutionType solution){
          // synchronize with status updates
          synchronized(getStatusLock()){
              // assert idle
              assertIdle("Cannot set current solution.");
              // check not null
              if(solution == null){
                  throw new NullPointerException("Cannot set current solution: received null.");
              }
              // update current solution and check for new best solution
              updateCurrentAndBestSolution(solution);
          }
      }
docs: Sets the current solution prior to execution or in between search runs. The given solution is evaluated and
  validated, and it is checked whether it is a valid first/new best solution. This method may for example be
  used to specify a custom initial solution before starting the search. Note that it may only be called when
  the search is idle.
  
  @param solution current solution to be adopted
  @throws SearchException if the search is not idle
  @throws NullPointerException if <code>solution</code> is <code>null</code>