Program: 3574
Project: 3574
Buggy source:
private static void configureNamedPlugin(String iname) throws ClassNotFoundException {
  int found=0;
  if (!namedPluginClasses.containsKey(iname)) {
    String namedVal=ConfigurationManager.getProperty(NAMED_PREFIX + iname);
    if (namedVal != null) {
      log.debug("String_Node_Str" + iname + "String_Node_Str"+ namedVal);
      Pattern classnameEqual=Pattern.compile("String_Node_Str");
      int prevEnd=-1;
      String prevClassName=null;
      Matcher classMatcher=classnameEqual.matcher(namedVal);
      while (classMatcher.find()) {
        if (prevClassName != null)         found+=installNamedConfigs(iname,prevClassName,namedVal.substring(prevEnd,classMatcher.start()).trim().split("String_Node_Str"));
        prevClassName=classMatcher.group(1);
        prevEnd=classMatcher.end();
      }
      if (prevClassName != null)       found+=installNamedConfigs(iname,prevClassName,namedVal.substring(prevEnd).trim().split("String_Node_Str"));
    }
    String selfNamedVal=ConfigurationManager.getProperty(SELFNAMED_PREFIX + iname);
    if (selfNamedVal != null) {
      String classnames[]=selfNamedVal.split("String_Node_Str");
      for (int i=0; i < classnames.length; ++i) {
        Class pluginClass=Class.forName(classnames[i]);
        try {
          String names[]=(String[])pluginClass.getMethod("String_Node_Str",null).invoke(null,null);
          if (names == null || names.length == 0)           log.error("String_Node_Str" + classnames[i] + "String_Node_Str");
 else           found+=installNamedConfigs(iname,classnames[i],names);
        }
 catch (        NoSuchMethodException e) {
          log.error("String_Node_Str" + classnames[i] + "String_Node_Str");
        }
catch (        Exception e) {
          log.error(e.toString());
        }
      }
    }
    namedPluginClasses.put(iname,"String_Node_Str");
    if (found == 0)     log.error("String_Node_Str" + iname);
  }
}

Fixed version (ground truth):
private static void configureNamedPlugin(String iname) throws ClassNotFoundException {
  int found=0;
  if (!namedPluginClasses.containsKey(iname)) {
    String namedVal=ConfigurationManager.getProperty(NAMED_PREFIX + iname);
    if (namedVal != null) {
      log.debug("String_Node_Str" + iname + "String_Node_Str"+ namedVal);
      Pattern classnameEqual=Pattern.compile("String_Node_Str");
      int prevEnd=-1;
      String prevClassName=null;
      Matcher classMatcher=classnameEqual.matcher(namedVal);
      while (classMatcher.find()) {
        if (prevClassName != null)         found+=installNamedConfigs(iname,prevClassName,namedVal.substring(prevEnd,classMatcher.start()).trim().split("String_Node_Str"));
        prevClassName=classMatcher.group(1);
        prevEnd=classMatcher.end();
      }
      if (prevClassName != null)       found+=installNamedConfigs(iname,prevClassName,namedVal.substring(prevEnd).trim().split("String_Node_Str"));
    }
    String selfNamedVal=ConfigurationManager.getProperty(SELFNAMED_PREFIX + iname);
    if (selfNamedVal != null) {
      String classnames[]=selfNamedVal.split("String_Node_Str");
      for (int i=0; i < classnames.length; ++i) {
        try {
          Class pluginClass=Class.forName(classnames[i]);
          String names[]=(String[])pluginClass.getMethod("String_Node_Str",null).invoke(null,null);
          if (names == null || names.length == 0)           log.error("String_Node_Str" + classnames[i] + "String_Node_Str");
 else           found+=installNamedConfigs(iname,classnames[i],names);
        }
 catch (        NoSuchMethodException e) {
          log.error("String_Node_Str" + classnames[i] + "String_Node_Str");
        }
catch (        Exception e) {
          log.error("String_Node_Str" + e.toString());
        }
      }
    }
    namedPluginClasses.put(iname,"String_Node_Str");
    if (found == 0)     log.error("String_Node_Str" + iname);
  }
}