Program: 39657
Project: 39657
Buggy source:
public void perform(Transformation transformation) throws TransformationException {
  logger.debug("String_Node_Str" + transformation);
  File transformedAppFolder=prepareOutputFolder(transformation);
  TransformationTemplate template=transformation.getTemplate();
  int total=template.getTransformationUtilitiesList().size();
  logger.info("String_Node_Str" + template.getOperationsCount() + "String_Node_Str");
  int operationsExecutionOrder=1;
  TransformationContext transformationContext=new TransformationContextImpl();
  TransformationUtility utility;
  TransformationOperation operation;
  for (  Object transformationUtilityObj : template.getTransformationUtilitiesList()) {
    if (transformationUtilityObj instanceof TransformationOperation) {
      operation=(TransformationOperation)transformationUtilityObj;
      String result=null;
      try {
        result=operation.perform(transformedAppFolder,transformationContext);
        String key=(operation.getContextAttributeName() != null ? operation.getContextAttributeName() : operation.getName());
        transformationContext.put(key,result);
      }
 catch (      TransformationOperationException e) {
        if (operation.abortTransformationOnFailure()) {
          logger.error("String_Node_Str");
          logger.error("String_Node_Str" + operation.getDescription());
          logger.error("String_Node_Str" + e.getCause());
          throw new TransformationException("String_Node_Str" + operation.getName() + "String_Node_Str",e);
        }
 else {
        }
      }
      logger.info("String_Node_Str" + operationsExecutionOrder + "String_Node_Str"+ result);
      operationsExecutionOrder++;
    }
 else {
      utility=(TransformationUtility)transformationUtilityObj;
      try {
        Object result=utility.perform(transformedAppFolder,transformationContext);
        String key=(utility.getContextAttributeName() != null ? utility.getContextAttributeName() : utility.getName());
        transformationContext.put(key,result);
        logger.debug("String_Node_Str",utility,utility.getName());
      }
 catch (      TransformationUtilityException e) {
        logger.error("String_Node_Str");
        logger.error("String_Node_Str" + utility.getDescription());
        logger.error("String_Node_Str" + e.getCause());
        throw new TransformationException("String_Node_Str" + utility.getName() + "String_Node_Str",e);
      }
    }
  }
  logger.info("String_Node_Str");
}

Fixed version (ground truth):
public void perform(Transformation transformation) throws TransformationException {
  logger.debug("String_Node_Str" + transformation);
  File transformedAppFolder=prepareOutputFolder(transformation);
  TransformationTemplate template=transformation.getTemplate();
  int total=template.getTransformationUtilitiesList().size();
  logger.info("String_Node_Str" + total);
  logger.info("String_Node_Str" + template.getOperationsCount() + "String_Node_Str");
  int operationsExecutionOrder=1;
  TransformationContext transformationContext=new TransformationContextImpl();
  TransformationUtility utility;
  TransformationOperation operation;
  for (  Object transformationUtilityObj : template.getTransformationUtilitiesList()) {
    if (transformationUtilityObj instanceof TransformationOperation) {
      operation=(TransformationOperation)transformationUtilityObj;
      String result=null;
      try {
        result=operation.perform(transformedAppFolder,transformationContext);
        String key=(operation.getContextAttributeName() != null ? operation.getContextAttributeName() : operation.getName());
        transformationContext.put(key,result);
      }
 catch (      TransformationOperationException e) {
        if (operation.abortTransformationOnFailure()) {
          logger.error("String_Node_Str");
          logger.error("String_Node_Str" + operation.getDescription());
          logger.error("String_Node_Str" + e.getCause());
          throw new TransformationException("String_Node_Str" + operation.getName() + "String_Node_Str",e);
        }
 else {
        }
      }
      logger.info("String_Node_Str" + operationsExecutionOrder + "String_Node_Str"+ result);
      operationsExecutionOrder++;
    }
 else {
      utility=(TransformationUtility)transformationUtilityObj;
      try {
        Object result=utility.perform(transformedAppFolder,transformationContext);
        String key=(utility.getContextAttributeName() != null ? utility.getContextAttributeName() : utility.getName());
        transformationContext.put(key,result);
        logger.debug("String_Node_Str",utility,utility.getName());
      }
 catch (      TransformationUtilityException e) {
        logger.error("String_Node_Str");
        logger.error("String_Node_Str" + utility.getDescription());
        logger.error("String_Node_Str" + e.getCause());
        throw new TransformationException("String_Node_Str" + utility.getName() + "String_Node_Str",e);
      }
    }
  }
  logger.info("String_Node_Str");
}