#vulnerable code 
                              @Test
  public void test2() throws JMException {
    double epsilon = 0.000000000000001;
    Settings GDE3Settings = new GDE3_Settings("Fonseca");
    Algorithm algorithm = GDE3Settings.configure(configuration_);
    //Problem problem = new Fonseca("Real");

    DifferentialEvolutionCrossover crossover = (DifferentialEvolutionCrossover)algorithm.getOperator("crossover") ;
    double CR = (Double)crossover.getParameter("CR") ;
    double F = (Double)crossover.getParameter("F") ;

    Assert.assertEquals("GDE3_SettingsTest", 100, ((Integer)algorithm.getInputParameter("populationSize")).intValue());
    Assert.assertEquals("GDE3_SettingsTest", 250, ((Integer)algorithm.getInputParameter("maxIterations")).intValue());

    Assert.assertEquals("GDE3_SettingsTest", 0.5, CR, epsilon);
    Assert.assertEquals("GDE3_SettingsTest", 0.5, F, epsilon);
  } 
                            #location 8 
                            #vulnerability type NULL_DEREFERENCE
#fixed code
                              @Test
  public void test2() throws JMException {
    double epsilon = 0.000000000000001;
    Settings GDE3Settings = new GDE3_Settings("Fonseca");
    GDE3 algorithm = (GDE3) GDE3Settings.configure(configuration_);

    DifferentialEvolutionCrossover crossover =
      (DifferentialEvolutionCrossover) algorithm.getCrossoverOperator();

    Assert.assertEquals("GDE3_SettingsTest", 100, algorithm.getPopulationSize());
    Assert.assertEquals("GDE3_SettingsTest", 250, algorithm.getMaxIterations());

    Assert.assertEquals("GDE3_SettingsTest", 0.5, crossover.getCr(), epsilon);
    Assert.assertEquals("GDE3_SettingsTest", 0.5, crossover.getF(), epsilon);
  }