Program: 186047
Project: 186047
Buggy source:
public String[] createCommandLine(CompilerConfiguration config) throws CompilerException {
  File destinationDir=new File(config.getOutputLocation());
  if (!destinationDir.exists()) {
    destinationDir.mkdirs();
  }
  File[] sourceFiles=recalculateStaleFiles(config);
  if (sourceFiles.length == 0) {
    return new String[0];
  }
  getLogger().info("String_Node_Str");
  getLogger().info("String_Node_Str" + sourceFiles.length + "String_Node_Str"+ "String_Node_Str"+ (sourceFiles.length == 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str"+ destinationDir.getAbsolutePath());
  List<String> args=new ArrayList<String>();
  String cp=super.getPathString(config.getClasspathEntries());
  verbose=config.isVerbose();
  if (verbose) {
    getLogger().info("String_Node_Str" + cp);
  }
  if (cp.length() > 0) {
    args.add("String_Node_Str");
    args.add(cp);
  }
  if (config.getOutputLocation() != null && config.getOutputLocation().length() > 0) {
    args.add("String_Node_Str");
    args.add(config.getOutputLocation());
  }
  if (config.isDebug()) {
    if (config.getDebugLevel() != null && config.getDebugLevel().trim().length() > 0) {
      args.add("String_Node_Str" + config.getDebugLevel());
    }
 else {
      args.add("String_Node_Str");
    }
  }
  if ("String_Node_Str".equals(config.getProc())) {
    args.add("String_Node_Str");
  }
 else   if ("String_Node_Str".equals(config.getProc())) {
    args.add("String_Node_Str");
  }
  if (config.getGeneratedSourcesDirectory() != null) {
    args.add("String_Node_Str");
    args.add(config.getGeneratedSourcesDirectory().getAbsolutePath());
  }
  String source=config.getSourceVersion();
  args.add("String_Node_Str");
  if (source != null && source.length() > 0) {
    args.add(source);
  }
 else {
    args.add("String_Node_Str");
  }
  String target=config.getTargetVersion();
  args.add("String_Node_Str");
  if (target != null && target.length() > 0) {
    args.add(target);
  }
 else {
    args.add("String_Node_Str");
  }
  if (config.isShowDeprecation()) {
    args.add("String_Node_Str");
  }
  if (!config.isShowWarnings()) {
    args.add("String_Node_Str");
  }
  if (config.getAnnotationProcessors() != null) {
    StringBuilder procArg=new StringBuilder();
    for (    String proc : config.getAnnotationProcessors()) {
      if (proc != null && proc.trim().length() > 0) {
        procArg.append(proc);
        procArg.append("String_Node_Str");
      }
    }
    if (procArg.length() > 0) {
      args.add("String_Node_Str");
      procArg.replace(procArg.length() - 1,procArg.length(),"String_Node_Str");
      args.add("String_Node_Str" + procArg.toString() + "String_Node_Str");
    }
  }
  if (verbose) {
    args.add("String_Node_Str");
  }
  if (verbose) {
    getLogger().info("String_Node_Str" + args);
  }
  if (config.getSourceEncoding() != null) {
    args.add("String_Node_Str");
    args.add(config.getSourceEncoding());
  }
  for (Iterator argIter=config.getCustomCompilerArguments().entrySet().iterator(); argIter.hasNext(); ) {
    Entry entry=(Entry)argIter.next();
    Object key=entry.getKey();
    if (doesStartWithHyphen(key)) {
      args.add((String)key);
    }
 else     if (key != null) {
      args.add("String_Node_Str" + key);
      if (null != entry.getValue()) {
        args.add("String_Node_Str" + entry.getValue() + "String_Node_Str");
      }
    }
  }
  args.addAll(composeSourceFiles(sourceFiles));
  return args.toArray(new String[args.size()]);
}

Fixed version (ground truth):
public String[] createCommandLine(CompilerConfiguration config) throws CompilerException {
  File destinationDir=new File(config.getOutputLocation());
  if (!destinationDir.exists()) {
    destinationDir.mkdirs();
  }
  File[] sourceFiles=recalculateStaleFiles(config);
  if (sourceFiles.length == 0) {
    return new String[0];
  }
  getLogger().info("String_Node_Str");
  getLogger().info("String_Node_Str" + sourceFiles.length + "String_Node_Str"+ "String_Node_Str"+ (sourceFiles.length == 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str"+ destinationDir.getAbsolutePath());
  List<String> args=new ArrayList<String>();
  String cp=super.getPathString(config.getClasspathEntries());
  verbose=config.isVerbose();
  if (verbose) {
    getLogger().info("String_Node_Str" + cp);
  }
  if (cp.length() > 0) {
    args.add("String_Node_Str");
    args.add(cp);
  }
  if (config.getOutputLocation() != null && config.getOutputLocation().length() > 0) {
    args.add("String_Node_Str");
    args.add(config.getOutputLocation());
  }
  if (config.isDebug()) {
    if (config.getDebugLevel() != null && config.getDebugLevel().trim().length() > 0) {
      args.add("String_Node_Str" + config.getDebugLevel());
    }
 else {
      args.add("String_Node_Str");
    }
  }
  if ("String_Node_Str".equals(config.getProc())) {
    args.add("String_Node_Str");
  }
 else   if ("String_Node_Str".equals(config.getProc())) {
    args.add("String_Node_Str");
  }
  if (config.getGeneratedSourcesDirectory() != null) {
    args.add("String_Node_Str");
    args.add(config.getGeneratedSourcesDirectory().getAbsolutePath());
  }
  String source=config.getSourceVersion();
  args.add("String_Node_Str");
  if (source != null && source.length() > 0) {
    args.add(source);
  }
 else {
    args.add("String_Node_Str");
  }
  String target=config.getTargetVersion();
  args.add("String_Node_Str");
  if (target != null && target.length() > 0) {
    args.add(target);
  }
 else {
    args.add("String_Node_Str");
  }
  if (config.isShowDeprecation()) {
    args.add("String_Node_Str");
  }
  if (!config.isShowWarnings()) {
    args.add("String_Node_Str");
  }
  if (config.getAnnotationProcessors() != null) {
    StringBuilder procArg=new StringBuilder();
    for (    String proc : config.getAnnotationProcessors()) {
      if (proc != null && proc.trim().length() > 0) {
        procArg.append(proc);
        procArg.append("String_Node_Str");
      }
    }
    if (procArg.length() > 0) {
      args.add("String_Node_Str");
      procArg.replace(procArg.length() - 1,procArg.length(),"String_Node_Str");
      args.add("String_Node_Str" + procArg.toString() + "String_Node_Str");
    }
  }
  if (verbose) {
    args.add("String_Node_Str");
  }
  if (verbose) {
    getLogger().info("String_Node_Str" + args);
  }
  if (config.getSourceEncoding() != null) {
    args.add("String_Node_Str");
    args.add(config.getSourceEncoding());
  }
  for (  Entry<Object,Object> entry : (Iterable<Entry<Object,Object>>)config.getCustomCompilerArguments().entrySet()) {
    Object key=entry.getKey();
    if (startsWithHyphen(key)) {
      args.add((String)key);
    }
 else     if (key != null) {
      args.add("String_Node_Str" + key);
      if (null != entry.getValue()) {
        args.add("String_Node_Str" + entry.getValue() + "String_Node_Str");
      }
    }
  }
  args.addAll(composeSourceFiles(sourceFiles));
  return args.toArray(new String[args.size()]);
}