Program: 88297
Project: 88297
Buggy source:
/** 
 * Tests the Nephele execution with a job that has two vertices, that are connected twice with each other with different channel types.
 */
@Test public void testExecutionDoubleConnection(){
  File inputFile=null;
  File outputFile=null;
  File jarFile=new File(ServerTestUtils.getTempDir() + File.separator + "String_Node_Str");
  try {
    inputFile=ServerTestUtils.createInputFile(0);
    outputFile=new File(ServerTestUtils.getTempDir() + File.separator + ServerTestUtils.getRandomFilename());
    JarFileCreator jfc=new JarFileCreator(jarFile);
    jfc.addClass(DoubleSourceTask.class);
    jfc.addClass(DoubleTargetTask.class);
    jfc.createJarFile();
    final JobGraph jg=new JobGraph("String_Node_Str");
    final JobFileInputVertex i1=new JobFileInputVertex("String_Node_Str",jg);
    i1.setFileInputClass(DoubleSourceTask.class);
    i1.setFilePath(new Path("String_Node_Str" + inputFile.getAbsolutePath().toString()));
    final JobTaskVertex t1=new JobTaskVertex("String_Node_Str",jg);
    t1.setTaskClass(DoubleTargetTask.class);
    JobFileOutputVertex o1=new JobFileOutputVertex("String_Node_Str",jg);
    o1.setFileOutputClass(FileLineWriter.class);
    o1.setFilePath(new Path("String_Node_Str" + outputFile.getAbsolutePath().toString()));
    t1.setVertexToShareInstancesWith(i1);
    o1.setVertexToShareInstancesWith(i1);
    i1.connectTo(t1,ChannelType.INMEMORY,CompressionLevel.NO_COMPRESSION);
    i1.connectTo(t1,ChannelType.NETWORK,CompressionLevel.NO_COMPRESSION);
    t1.connectTo(o1,ChannelType.INMEMORY,CompressionLevel.NO_COMPRESSION);
    jg.addJar(new Path("String_Node_Str" + jarFile.getAbsolutePath()));
    final JobClient jobClient=new JobClient(jg,configuration);
    try {
      jobClient.submitJobAndWait();
    }
 catch (    JobExecutionException e) {
      if (e.getMessage() == null) {
        fail("String_Node_Str");
      }
      if (!e.getMessage().contains(RuntimeExceptionTask.RUNTIME_EXCEPTION_MESSAGE)) {
        fail("String_Node_Str");
      }
      return;
    }
    fail("String_Node_Str");
  }
 catch (  JobGraphDefinitionException jgde) {
    fail(jgde.getMessage());
  }
catch (  IOException ioe) {
    fail(ioe.getMessage());
  }
 finally {
    if (inputFile != null) {
      inputFile.delete();
    }
    if (outputFile != null) {
      outputFile.delete();
    }
    if (jarFile != null) {
      jarFile.delete();
    }
  }
}

Fixed version (ground truth):
/** 
 * Tests the Nephele execution with a job that has two vertices, that are connected twice with each other with different channel types.
 */
@Test public void testExecutionDoubleConnection(){
  File inputFile=null;
  File outputFile=null;
  File jarFile=new File(ServerTestUtils.getTempDir() + File.separator + "String_Node_Str");
  try {
    inputFile=ServerTestUtils.createInputFile(0);
    outputFile=new File(ServerTestUtils.getTempDir() + File.separator + ServerTestUtils.getRandomFilename());
    JarFileCreator jfc=new JarFileCreator(jarFile);
    jfc.addClass(DoubleSourceTask.class);
    jfc.addClass(DoubleTargetTask.class);
    jfc.createJarFile();
    final JobGraph jg=new JobGraph("String_Node_Str");
    final JobFileInputVertex i1=new JobFileInputVertex("String_Node_Str",jg);
    i1.setFileInputClass(DoubleSourceTask.class);
    i1.setFilePath(new Path("String_Node_Str" + inputFile.getAbsolutePath().toString()));
    final JobTaskVertex t1=new JobTaskVertex("String_Node_Str",jg);
    t1.setTaskClass(DoubleTargetTask.class);
    JobFileOutputVertex o1=new JobFileOutputVertex("String_Node_Str",jg);
    o1.setFileOutputClass(FileLineWriter.class);
    o1.setFilePath(new Path("String_Node_Str" + outputFile.getAbsolutePath().toString()));
    t1.setVertexToShareInstancesWith(i1);
    o1.setVertexToShareInstancesWith(i1);
    i1.connectTo(t1,ChannelType.INMEMORY,CompressionLevel.NO_COMPRESSION);
    i1.connectTo(t1,ChannelType.NETWORK,CompressionLevel.NO_COMPRESSION);
    t1.connectTo(o1,ChannelType.INMEMORY,CompressionLevel.NO_COMPRESSION);
    jg.addJar(new Path("String_Node_Str" + jarFile.getAbsolutePath()));
    final JobClient jobClient=new JobClient(jg,configuration);
    jobClient.submitJobAndWait();
  }
 catch (  JobExecutionException e) {
    fail(e.getMessage());
  }
catch (  JobGraphDefinitionException jgde) {
    fail(jgde.getMessage());
  }
catch (  IOException ioe) {
    fail(ioe.getMessage());
  }
 finally {
    if (inputFile != null) {
      inputFile.delete();
    }
    if (outputFile != null) {
      outputFile.delete();
    }
    if (jarFile != null) {
      jarFile.delete();
    }
  }
}