Program: 68643
Project: 68643
Buggy source:
public static javax.xml.bind.JAXBContext createContext(String contextPath,ClassLoader classLoader) throws JAXBException {
  try {
    XMLContext xmlContext=new XMLContext(contextPath,classLoader);
    return new org.eclipse.persistence.jaxb.JAXBContext(xmlContext);
  }
 catch (  Exception ex) {
  }
  ArrayList classes=new ArrayList();
  StringTokenizer tokenizer=new StringTokenizer(contextPath,"String_Node_Str");
  while (tokenizer.hasMoreElements()) {
    String path=tokenizer.nextToken();
    try {
      Class objectFactory=classLoader.loadClass(path + "String_Node_Str");
      Method[] createMethods=objectFactory.getMethods();
      for (int i=0; i < createMethods.length; i++) {
        if (createMethods[i].getName().startsWith("String_Node_Str") && createMethods[i].getReturnType() != javax.xml.bind.JAXBElement.class) {
          classes.add(createMethods[i].getReturnType());
        }
      }
    }
 catch (    Exception ex) {
    }
    try {
      classLoader.loadClass(path + "String_Node_Str");
    }
 catch (    Exception ex) {
    }
    InputStream jaxbIndex=classLoader.getResourceAsStream(path.replace('.','/') + "String_Node_Str");
    if (jaxbIndex != null) {
      BufferedReader reader=new BufferedReader(new InputStreamReader(jaxbIndex));
      try {
        String line=reader.readLine();
        while (line != null) {
          String className=path + "String_Node_Str" + line.trim();
          try {
            classes.add(classLoader.loadClass(className));
          }
 catch (          Exception ex) {
          }
          line=reader.readLine();
        }
      }
 catch (      Exception ex) {
      }
    }
  }
  Class[] classArray=new Class[classes.size()];
  for (int i=0; i < classes.size(); i++) {
    classArray[i]=(Class)classes.get(i);
  }
  return createContext(classArray,null);
}

Fixed version (ground truth):
public static javax.xml.bind.JAXBContext createContext(String contextPath,ClassLoader classLoader) throws JAXBException {
  try {
    XMLContext xmlContext=new XMLContext(contextPath,classLoader);
    return new org.eclipse.persistence.jaxb.JAXBContext(xmlContext);
  }
 catch (  Exception ex) {
  }
  ArrayList classes=new ArrayList();
  StringTokenizer tokenizer=new StringTokenizer(contextPath,"String_Node_Str");
  while (tokenizer.hasMoreElements()) {
    String path=tokenizer.nextToken();
    try {
      Class objectFactory=classLoader.loadClass(path + "String_Node_Str");
      Method[] createMethods=objectFactory.getMethods();
      for (int i=0; i < createMethods.length; i++) {
        if (createMethods[i].getName().startsWith("String_Node_Str") && createMethods[i].getReturnType() != javax.xml.bind.JAXBElement.class) {
          classes.add(createMethods[i].getReturnType());
        }
      }
    }
 catch (    Exception ex) {
    }
    try {
      classLoader.loadClass(path + "String_Node_Str");
    }
 catch (    Exception ex) {
    }
    InputStream jaxbIndex=classLoader.getResourceAsStream(path.replace('.','/') + "String_Node_Str");
    if (jaxbIndex != null) {
      BufferedReader reader=new BufferedReader(new InputStreamReader(jaxbIndex));
      try {
        String line=reader.readLine();
        while (line != null) {
          String className=path + "String_Node_Str" + line.trim();
          try {
            classes.add(classLoader.loadClass(className));
          }
 catch (          Exception ex) {
          }
          line=reader.readLine();
        }
      }
 catch (      Exception ex) {
      }
    }
  }
  Class[] classArray=new Class[classes.size()];
  for (int i=0; i < classes.size(); i++) {
    classArray[i]=(Class)classes.get(i);
  }
  return createContext(classArray,null,classLoader);
}