Program: 68191
Project: 68191
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 (  ValidationException vex) {
    if (vex.getErrorCode() != 7095) {
      throw new JAXBException(vex);
    }
  }
catch (  Exception ex) {
    throw new JAXBException(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");
      classes.add(objectFactory);
    }
 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) {
      }
    }
  }
  if (classes.size() == 0) {
    throw new JAXBException(org.eclipse.persistence.exceptions.JAXBException.noObjectFactoryOrJaxbIndexInPath(contextPath));
  }
  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);
}

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 (  ValidationException vex) {
    if (vex.getErrorCode() != ValidationException.NO_SESSIONS_XML_FOUND) {
      throw new JAXBException(vex);
    }
  }
catch (  Exception ex) {
    throw new JAXBException(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");
      if (isJAXB2ObjectFactory(objectFactory)) {
        classes.add(objectFactory);
      }
    }
 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) {
      }
    }
  }
  if (classes.size() == 0) {
    throw new JAXBException(org.eclipse.persistence.exceptions.JAXBException.noObjectFactoryOrJaxbIndexInPath(contextPath));
  }
  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);
}