Program: 16669
Project: 16669
Buggy source:
/** 
 * Build classpath list using either gwtHome (if present) or using *project* dependencies. Note that this is ONLY used for the script/cmd writers (so the scopes are not for the compiler, or war plugins, etc). This is required so that the script writers can get the dependencies they need regardless of the Maven scopes (still want to use the Maven scopes for everything else Maven, but for GWT-Maven we need to access deps differently - directly at times).
 * @param project The maven project the Mojo is running for
 * @param artifacts the project artifacts (all scopes)
 * @param scope artifact scope to use
 * @param isGenerator whether to use processed resources and compiled classes (false), or raw resources (true).
 * @return file collection for classpath
 * @throws MojoExecutionException 
 */
public Collection<File> buildClasspathList(final MavenProject project,final String scope,Set<Artifact> artifacts,boolean isGenerator) throws ClasspathBuilderException {
  getLogger().debug("String_Node_Str" + scope + "String_Node_Str");
  Set<File> items=new LinkedHashSet<File>();
  if (!isGenerator) {
    items.add(new File(project.getBuild().getOutputDirectory()));
  }
  addSources(items,project.getCompileSourceRoots());
  if (isGenerator) {
    addResources(items,project.getResources());
  }
  if (scope.equals(SCOPE_TEST)) {
    addSources(items,project.getTestCompileSourceRoots());
    addResources(items,project.getTestResources());
    items.add(new File(project.getBuild().getTestOutputDirectory()));
    for (    Artifact artifact : artifacts) {
      items.add(artifact.getFile());
    }
  }
 else   if (scope.equals(SCOPE_COMPILE)) {
    getLogger().debug("String_Node_Str" + artifacts.size());
    for (    Artifact artifact : artifacts) {
      String artifactScope=artifact.getScope();
      if (SCOPE_COMPILE.equals(artifactScope) || SCOPE_PROVIDED.equals(artifactScope) || SCOPE_SYSTEM.equals(artifactScope)) {
        items.add(artifact.getFile());
      }
    }
  }
 else   if (scope.equals(SCOPE_RUNTIME)) {
    for (    Artifact artifact : artifacts) {
      getLogger().debug("String_Node_Str" + artifact);
      if (!artifact.getScope().equals(SCOPE_TEST) && artifact.getArtifactHandler().isAddedToClasspath()) {
        items.add(artifact.getFile());
      }
    }
  }
 else {
    throw new ClasspathBuilderException("String_Node_Str" + scope);
  }
  return items;
}

Fixed version (ground truth):
/** 
 * Build classpath list using either gwtHome (if present) or using *project* dependencies. Note that this is ONLY used for the script/cmd writers (so the scopes are not for the compiler, or war plugins, etc). This is required so that the script writers can get the dependencies they need regardless of the Maven scopes (still want to use the Maven scopes for everything else Maven, but for GWT-Maven we need to access deps differently - directly at times).
 * @param project The maven project the Mojo is running for
 * @param artifacts the project artifacts (all scopes)
 * @param scope artifact scope to use
 * @param isGenerator whether to use processed resources and compiled classes (false), or raw resources (true).
 * @return file collection for classpath
 */
public Collection<File> buildClasspathList(final MavenProject project,final String scope,Set<Artifact> artifacts,boolean isGenerator) throws ClasspathBuilderException {
  getLogger().debug("String_Node_Str" + scope + "String_Node_Str");
  Set<File> items=new LinkedHashSet<File>();
  if (!isGenerator) {
    items.add(new File(project.getBuild().getOutputDirectory()));
  }
  addSources(items,project.getCompileSourceRoots());
  if (isGenerator) {
    addResources(items,project.getResources());
  }
  if (scope.equals(SCOPE_TEST)) {
    addSources(items,project.getTestCompileSourceRoots());
    addResources(items,project.getTestResources());
    items.add(new File(project.getBuild().getTestOutputDirectory()));
    for (    Artifact artifact : artifacts) {
      items.add(artifact.getFile());
    }
  }
 else   if (scope.equals(SCOPE_COMPILE)) {
    getLogger().debug("String_Node_Str" + artifacts.size());
    for (    Artifact artifact : artifacts) {
      String artifactScope=artifact.getScope();
      if (SCOPE_COMPILE.equals(artifactScope) || SCOPE_PROVIDED.equals(artifactScope) || SCOPE_SYSTEM.equals(artifactScope)) {
        items.add(artifact.getFile());
      }
    }
  }
 else   if (scope.equals(SCOPE_RUNTIME)) {
    for (    Artifact artifact : artifacts) {
      getLogger().debug("String_Node_Str" + artifact);
      if (!artifact.getScope().equals(SCOPE_TEST) && artifact.getArtifactHandler().isAddedToClasspath()) {
        items.add(artifact.getFile());
      }
    }
  }
 else {
    throw new ClasspathBuilderException("String_Node_Str" + scope);
  }
  return items;
}