Program: 109520
Project: 109520
Buggy source:
@Override public XSLTTransformation processElement(ParserContext handlerManager,Element element) throws ConfigurationException {
  String description=$(element).attr("String_Node_Str");
  String extension=$(element).attr("String_Node_Str");
  String template=$(element).attr("String_Node_Str");
  String of=$(element).attr("String_Node_Str");
  if (StringUtils.isBlank(description)) {
    throw new WindupException("String_Node_Str");
  }
  if (StringUtils.isBlank(template)) {
    throw new WindupException("String_Node_Str");
  }
  if (StringUtils.isBlank(extension)) {
    throw new WindupException("String_Node_Str");
  }
  Map<String,String> parameters=new HashMap<String,String>();
  List<Element> children=$(element).children("String_Node_Str").get();
  for (  Element child : children) {
    XSLTParameter param=handlerManager.processElement(child);
    parameters.put(param.getKey(),param.getValue());
  }
  Path pathContainingXml=handlerManager.getXmlInputPath();
  if (pathContainingXml != null) {
    String fullPath;
    if (template.startsWith("String_Node_Str") || template.startsWith("String_Node_Str")) {
      fullPath=template;
    }
 else {
      fullPath=pathContainingXml.resolve(template).toAbsolutePath().toString();
    }
    if (of != null) {
      return (XSLTTransformation)XSLTTransformation.of(of).usingFilesystem(fullPath).withDescription(description).withExtension(extension).withParameters(parameters);
    }
    return (XSLTTransformation)XSLTTransformation.usingFilesystem(fullPath).withDescription(description).withExtension(extension).withParameters(parameters);
  }
 else {
    ClassLoader xmlFileAddonClassLoader=handlerManager.getAddonContainingInputXML().getClassLoader();
    if (of != null) {
      return (XSLTTransformation)XSLTTransformation.of(of).using(template,xmlFileAddonClassLoader).withDescription(description).withExtension(extension).withParameters(parameters);
    }
    return (XSLTTransformation)XSLTTransformation.using(template,xmlFileAddonClassLoader).withDescription(description).withExtension(extension).withParameters(parameters);
  }
}

Fixed version (ground truth):
@Override public XSLTTransformation processElement(ParserContext handlerManager,Element element) throws ConfigurationException {
  String description=$(element).attr("String_Node_Str");
  String extension=$(element).attr("String_Node_Str");
  String template=$(element).attr("String_Node_Str");
  String of=$(element).attr("String_Node_Str");
  if (StringUtils.isBlank(description)) {
    throw new WindupException("String_Node_Str");
  }
  if (StringUtils.isBlank(template)) {
    throw new WindupException("String_Node_Str");
  }
  if (StringUtils.isBlank(extension)) {
    throw new WindupException("String_Node_Str");
  }
  Map<String,String> parameters=new HashMap<String,String>();
  List<Element> children=$(element).children("String_Node_Str").get();
  for (  Element child : children) {
    XSLTParameter param=handlerManager.processElement(child);
    parameters.put(param.getKey(),param.getValue());
  }
  Path pathContainingXml=handlerManager.getXmlInputRootPath();
  if (pathContainingXml != null) {
    String fullPath;
    if (template.startsWith("String_Node_Str") || template.startsWith("String_Node_Str")) {
      fullPath=template;
    }
 else {
      Path path=pathContainingXml.resolve(template).toAbsolutePath();
      if (!Files.exists(path)) {
        Path rulesParentPath=handlerManager.getXmlInputPath().getParent();
        fullPath=rulesParentPath.resolve(template).normalize().toAbsolutePath().toString();
      }
 else {
        fullPath=path.normalize().toString();
      }
    }
    if (of != null) {
      return (XSLTTransformation)XSLTTransformation.of(of).usingFilesystem(fullPath).withDescription(description).withExtension(extension).withParameters(parameters);
    }
    return (XSLTTransformation)XSLTTransformation.usingFilesystem(fullPath).withDescription(description).withExtension(extension).withParameters(parameters);
  }
 else {
    ClassLoader xmlFileAddonClassLoader=handlerManager.getAddonContainingInputXML().getClassLoader();
    if (of != null) {
      return (XSLTTransformation)XSLTTransformation.of(of).using(template,xmlFileAddonClassLoader).withDescription(description).withExtension(extension).withParameters(parameters);
    }
    return (XSLTTransformation)XSLTTransformation.using(template,xmlFileAddonClassLoader).withDescription(description).withExtension(extension).withParameters(parameters);
  }
}