Program: 61619
Project: 61619
Buggy source:
/** 
 * Create a Gen Mutation for a given CtElement
 * @param ctElementPointed
 * @param className
 * @param suspValue
 * @return
 * @throws IllegalAccessException
 */
@Override protected GenOperationInstance createOperationForGen(Gen gen) throws IllegalAccessException {
  GenSuspicious genSusp=(GenSuspicious)gen;
  GenProgMutationOperation operationType=(GenProgMutationOperation)repairActionSpace.getNextMutation(genSusp.getSuspicious().getSuspiciousValue());
  if (operationType == null) {
    return null;
  }
  CtElement targetStmt=genSusp.getRootElement();
  CtElement cparent=targetStmt.getParent();
  GenOperationInstance operation=new GenOperationInstance();
  operation.setOriginal(targetStmt);
  operation.setOperationApplied(operationType);
  operation.setGen(genSusp);
  if ((cparent != null && (cparent instanceof CtBlock))) {
    CtBlock parentBlock=(CtBlock)cparent;
    operation.setParentBlock(parentBlock);
  }
  CtElement fix=null;
  if (operationType.equals(GenProgMutationOperation.INSERT_AFTER) || operationType.equals(GenProgMutationOperation.INSERT_BEFORE)) {
    fix=this.getFixIngredient(gen,targetStmt);
  }
  if (operationType.equals(GenProgMutationOperation.REPLACE)) {
    fix=this.getFixIngredient(gen,targetStmt,gen.getRootElement().getClass().getSimpleName());
  }
  if (fix == null) {
    log.error("String_Node_Str");
    return null;
  }
  operation.setModified(fix);
  return operation;
}

Fixed version (ground truth):
/** 
 * Create a Gen Mutation for a given CtElement
 * @param ctElementPointed
 * @param className
 * @param suspValue
 * @return
 * @throws IllegalAccessException
 */
@Override protected GenOperationInstance createOperationForGen(Gen gen) throws IllegalAccessException {
  GenSuspicious genSusp=(GenSuspicious)gen;
  GenProgMutationOperation operationType=(GenProgMutationOperation)repairActionSpace.getNextMutation(genSusp.getSuspicious().getSuspiciousValue());
  if (operationType == null) {
    return null;
  }
  CtElement targetStmt=genSusp.getRootElement();
  CtElement cparent=targetStmt.getParent();
  GenOperationInstance operation=new GenOperationInstance();
  operation.setOriginal(targetStmt);
  operation.setOperationApplied(operationType);
  operation.setGen(genSusp);
  if ((cparent != null && (cparent instanceof CtBlock))) {
    CtBlock parentBlock=(CtBlock)cparent;
    operation.setParentBlock(parentBlock);
    operation.setLocationInParent(locationInParent(parentBlock,genSusp.getSuspicious().getLineNumber(),targetStmt));
  }
  CtElement fix=null;
  if (operationType.equals(GenProgMutationOperation.INSERT_AFTER) || operationType.equals(GenProgMutationOperation.INSERT_BEFORE)) {
    fix=this.getFixIngredient(gen,targetStmt);
    if (operationType.equals(GenProgMutationOperation.INSERT_AFTER)) {
      operation.setLocationInParent(operation.getLocationInParent() + 1);
    }
  }
  if (operationType.equals(GenProgMutationOperation.REPLACE)) {
    fix=this.getFixIngredient(gen,targetStmt,gen.getRootElement().getClass().getSimpleName());
  }
  if (fix == null) {
    log.error("String_Node_Str");
    return null;
  }
  operation.setModified(fix);
  return operation;
}