Program: 39637
Project: 39637
Buggy source:
/** 
 * Compiles the specified classes and returns a map with a data object path as key and the corresponding compiled data object class.
 * @param source the compilation source
 * @param doPaths the data object paths
 * @return the compiled data object classes
 * @throws DataObjectException anything that would prevent data object compilation
 * @throws NullPointerException if any argument is null
 * @throws IllegalArgumentException if any data object path is null
 */
public Map<String,Class<?>> generateClasses(CompilationSource source,String... doPaths) throws DataObjectException, NullPointerException, IllegalArgumentException {
  if (source == null) {
    throw new NullPointerException("String_Node_Str");
  }
  for (  String doPath : doPaths) {
    if (doPath == null) {
      throw new IllegalArgumentException("String_Node_Str");
    }
  }
  try {
    URL url=new URL("String_Node_Str" + source.getRepositoryRef() + "String_Node_Str"+ source.getWorkspaceRef()+ "String_Node_Str"+ source.getPath());
    JcrGroovyCompiler compiler=new JcrGroovyCompiler();
    compiler.getGroovyClassLoader().setResourceLoader(new JcrGroovyResourceLoader(new URL[]{url}));
    UnifiedNodeReference[] doRefs=new UnifiedNodeReference[doPaths.length];
    for (int i=0; i < doPaths.length; i++) {
      doRefs[i]=new UnifiedNodeReference(source.getRepositoryRef(),source.getWorkspaceRef(),doPaths[i]);
    }
    Class[] classes=compiler.compile(doRefs);
    Map<String,Class<?>> doClasses=new HashMap<String,Class<?>>();
    for (int i=0; i < doPaths.length; i++) {
      doClasses.put(doPaths[i],classes[i]);
    }
    return doClasses;
  }
 catch (  IOException e) {
    throw new DataObjectException("String_Node_Str",e);
  }
}

Fixed version (ground truth):
/** 
 * Compiles the specified classes and returns a map with a data object path as key and the corresponding compiled data object class.
 * @param source the compilation source
 * @param doPaths the data object paths
 * @return the compiled data object classes
 * @throws DataObjectException anything that would prevent data object compilation
 * @throws NullPointerException if any argument is null
 * @throws IllegalArgumentException if any data object path is null
 */
public Map<String,Class<?>> generateClasses(CompilationSource source,String... doPaths) throws DataObjectException, NullPointerException, IllegalArgumentException {
  if (source == null) {
    throw new NullPointerException("String_Node_Str");
  }
  for (  String doPath : doPaths) {
    if (doPath == null) {
      throw new IllegalArgumentException("String_Node_Str");
    }
  }
  try {
    URL url=new UnifiedNodeReference(source.getRepositoryRef(),source.getWorkspaceRef(),source.getPath()).getURL();
    JcrGroovyCompiler compiler=new JcrGroovyCompiler();
    compiler.getGroovyClassLoader().setResourceLoader(new JcrGroovyResourceLoader(new URL[]{url}));
    UnifiedNodeReference[] doRefs=new UnifiedNodeReference[doPaths.length];
    for (int i=0; i < doPaths.length; i++) {
      doRefs[i]=new UnifiedNodeReference(source.getRepositoryRef(),source.getWorkspaceRef(),doPaths[i]);
    }
    Class[] classes=compiler.compile(doRefs);
    Map<String,Class<?>> doClasses=new HashMap<String,Class<?>>();
    for (int i=0; i < doPaths.length; i++) {
      doClasses.put(doPaths[i],classes[i]);
    }
    return doClasses;
  }
 catch (  IOException e) {
    throw new DataObjectException("String_Node_Str",e);
  }
}