Program: 55286
Project: 55286
Buggy source:
/** 
 * {@inheritDoc}
 */
@Override public void read(final Kryo kryo,final Input input){
  this.jobID=kryo.readObjectOrNull(input,JobID.class);
  this.jobName=input.readString();
  try {
    readRequiredJarFiles(kryo,input);
  }
 catch (  IOException ioe) {
    new RuntimeException(ioe);
  }
  final int numVertices=input.readInt();
  for (int i=0; i < numVertices; i++) {
    final String className=input.readString();
    final JobVertexID id=kryo.readObject(input,JobVertexID.class);
    final String vertexName=input.readString();
    Class<? extends Record> c;
    try {
      c=ClassUtils.getRecordByName(className);
    }
 catch (    ClassNotFoundException cnfe) {
      throw new RuntimeException(cnfe.toString());
    }
    Constructor<? extends Record> cst;
    try {
      cst=c.getConstructor(String.class,JobVertexID.class,JobGraph.class);
      cst.newInstance(vertexName,id,this);
    }
 catch (    Exception e) {
      throw new RuntimeException(e.toString());
    }
  }
  for (int i=0; i < numVertices; i++) {
    AbstractJobVertex jv;
    final JobVertexID tmpID=kryo.readObject(input,JobVertexID.class);
    if (inputVertices.containsKey(tmpID)) {
      jv=inputVertices.get(tmpID);
    }
 else {
      if (outputVertices.containsKey(tmpID)) {
        jv=outputVertices.get(tmpID);
      }
 else {
        if (taskVertices.containsKey(tmpID)) {
          jv=taskVertices.get(tmpID);
        }
 else {
          throw new IllegalStateException("String_Node_Str" + tmpID + "String_Node_Str");
        }
      }
    }
    jv.read(kryo,input);
  }
  ClassLoader cl=null;
  try {
    cl=LibraryCacheManager.getClassLoader(this.jobID);
  }
 catch (  IOException ioe) {
    throw new RuntimeException("String_Node_Str" + StringUtils.stringifyException(ioe));
  }
  this.jobConfiguration=new Configuration(cl);
  this.jobConfiguration.read(kryo,input);
  this.taskManagerConfiguration.read(kryo,input);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void read(final Kryo kryo,final Input input){
  this.jobID=kryo.readObject(input,JobID.class);
  this.jobName=input.readString();
  try {
    readRequiredJarFiles(kryo,input);
  }
 catch (  IOException ioe) {
    new RuntimeException(ioe);
  }
  final int numVertices=input.readInt();
  for (int i=0; i < numVertices; i++) {
    final String className=input.readString();
    final JobVertexID id=kryo.readObject(input,JobVertexID.class);
    final String vertexName=input.readString();
    Class<? extends Record> c;
    try {
      c=ClassUtils.getRecordByName(className);
    }
 catch (    ClassNotFoundException cnfe) {
      throw new RuntimeException(cnfe.toString());
    }
    Constructor<? extends Record> cst;
    try {
      cst=c.getConstructor(String.class,JobVertexID.class,JobGraph.class);
      cst.newInstance(vertexName,id,this);
    }
 catch (    Exception e) {
      throw new RuntimeException(e.toString());
    }
  }
  for (int i=0; i < numVertices; i++) {
    AbstractJobVertex jv;
    final JobVertexID tmpID=kryo.readObject(input,JobVertexID.class);
    if (inputVertices.containsKey(tmpID)) {
      jv=inputVertices.get(tmpID);
    }
 else {
      if (outputVertices.containsKey(tmpID)) {
        jv=outputVertices.get(tmpID);
      }
 else {
        if (taskVertices.containsKey(tmpID)) {
          jv=taskVertices.get(tmpID);
        }
 else {
          throw new IllegalStateException("String_Node_Str" + tmpID + "String_Node_Str");
        }
      }
    }
    jv.read(kryo,input);
  }
  ClassLoader cl=null;
  try {
    cl=LibraryCacheManager.getClassLoader(this.jobID);
  }
 catch (  IOException ioe) {
    throw new RuntimeException("String_Node_Str" + StringUtils.stringifyException(ioe));
  }
  this.jobConfiguration=new Configuration(cl);
  this.jobConfiguration.read(kryo,input);
  this.taskManagerConfiguration.read(kryo,input);
}