Program: 61660
Project: 61660
Buggy source:
/** 
 * Parses the console arguments
 * @param arguments
 * @return path to the file which should be opened or null
 * @throws java.io.IOException
 */
public static String parseArguments(String[] arguments) throws IOException {
  Level traceLevel=Level.WARNING;
  Queue<String> args=new LinkedList<>();
  for (  String arg : arguments) {
    if (arg.length() > 0) {
      args.add(arg);
    }
  }
  AbortRetryIgnoreHandler handler=null;
  Map<String,String> format=new HashMap<>();
  double zoom=1;
  Selection selection=new Selection();
  Selection selectionIds=new Selection();
  String nextParam;
  OUTER:   while (true) {
    nextParam=args.remove();
    if (nextParam != null) {
      nextParam=nextParam.toLowerCase();
    }
switch (nextParam) {
case "String_Node_Str":
      selectionIds=parseSelect(args);
    break;
case "String_Node_Str":
  selection=parseSelect(args);
break;
case "String_Node_Str":
zoom=parseZoom(args);
break;
case "String_Node_Str":
format=parseFormat(args);
break;
case "String_Node_Str":
parseConfig(args);
if (args.isEmpty()) {
Configuration.saveConfig();
System.out.println("String_Node_Str");
return null;
}
break;
case "String_Node_Str":
handler=parseOnError(args);
break;
case "String_Node_Str":
parseTimeout(args);
break;
case "String_Node_Str":
parseExportTimeout(args);
break;
case "String_Node_Str":
parseExportFileTimeout(args);
break;
case "String_Node_Str":
parseAffinity(args);
break;
case "String_Node_Str":
parsePriority(args);
break;
case "String_Node_Str":
traceLevel=Level.FINE;
break;
case "String_Node_Str":
for (int i=0; i < arguments.length; i++) {
System.out.println(i + "String_Node_Str" + arguments.length);
}
Configuration.debugMode.set(true);
break;
default :
break OUTER;
}
if (args.isEmpty()) {
return null;
}
}
if (nextParam.equals("String_Node_Str")) {
ContextMenuTools.addToContextMenu(false,true);
System.exit(0);
}
 else if (nextParam.equals("String_Node_Str")) {
ContextMenuTools.addToContextMenu(true,true);
System.exit(0);
}
 else if (nextParam.equals("String_Node_Str")) {
parseProxy(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseExport(selection,selectionIds,args,handler,traceLevel,format);
}
 else if (nextParam.equals("String_Node_Str")) {
parseCompress(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseDecompress(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseExtract(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseRenameInvalidIdentifiers(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseDumpSwf(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseFlashPaperToPdf(selection,zoom,args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseReplaceBinaryData(args);
}
 else if (nextParam.equals("String_Node_Str")) {
ActionScriptParser.compile(null,args.remove(),args.remove());
}
 else if (nextParam.equals("String_Node_Str") || nextParam.equals("String_Node_Str") || nextParam.equals("String_Node_Str")) {
printHeader();
printCmdLineUsage();
System.exit(0);
}
 else if (args.isEmpty()) {
return nextParam;
}
 else {
badArguments();
}
return null;
}

Fixed version (ground truth):
/** 
 * Parses the console arguments
 * @param arguments
 * @return path to the file which should be opened or null
 * @throws java.io.IOException
 */
public static String parseArguments(String[] arguments) throws IOException {
  Level traceLevel=Level.WARNING;
  Queue<String> args=new LinkedList<>();
  for (  String arg : arguments) {
    if (arg.length() > 0) {
      args.add(arg);
    }
  }
  AbortRetryIgnoreHandler handler=null;
  Map<String,String> format=new HashMap<>();
  double zoom=1;
  Selection selection=new Selection();
  Selection selectionIds=new Selection();
  String nextParam;
  OUTER:   while (true) {
    nextParam=args.remove();
    if (nextParam != null) {
      nextParam=nextParam.toLowerCase();
    }
switch (nextParam) {
case "String_Node_Str":
      selectionIds=parseSelect(args);
    break;
case "String_Node_Str":
  selection=parseSelect(args);
break;
case "String_Node_Str":
zoom=parseZoom(args);
break;
case "String_Node_Str":
format=parseFormat(args);
break;
case "String_Node_Str":
parseConfig(args);
if (args.isEmpty()) {
Configuration.saveConfig();
System.out.println("String_Node_Str");
return null;
}
break;
case "String_Node_Str":
handler=parseOnError(args);
break;
case "String_Node_Str":
parseTimeout(args);
break;
case "String_Node_Str":
parseExportTimeout(args);
break;
case "String_Node_Str":
parseExportFileTimeout(args);
break;
case "String_Node_Str":
parseAffinity(args);
break;
case "String_Node_Str":
parsePriority(args);
break;
case "String_Node_Str":
traceLevel=Level.FINE;
break;
case "String_Node_Str":
for (int i=0; i < arguments.length; i++) {
System.out.println(i + "String_Node_Str" + arguments[i]);
}
Configuration.debugMode.set(true);
break;
default :
break OUTER;
}
if (args.isEmpty()) {
return null;
}
}
if (nextParam.equals("String_Node_Str")) {
ContextMenuTools.addToContextMenu(false,true);
System.exit(0);
}
 else if (nextParam.equals("String_Node_Str")) {
ContextMenuTools.addToContextMenu(true,true);
System.exit(0);
}
 else if (nextParam.equals("String_Node_Str")) {
parseProxy(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseExport(selection,selectionIds,args,handler,traceLevel,format);
}
 else if (nextParam.equals("String_Node_Str")) {
parseCompress(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseDecompress(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseExtract(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseRenameInvalidIdentifiers(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseDumpSwf(args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseFlashPaperToPdf(selection,zoom,args);
}
 else if (nextParam.equals("String_Node_Str")) {
parseReplaceBinaryData(args);
}
 else if (nextParam.equals("String_Node_Str")) {
ActionScriptParser.compile(null,args.remove(),args.remove());
}
 else if (nextParam.equals("String_Node_Str") || nextParam.equals("String_Node_Str") || nextParam.equals("String_Node_Str")) {
printHeader();
printCmdLineUsage();
System.exit(0);
}
 else if (args.isEmpty()) {
return nextParam;
}
 else {
badArguments();
}
return null;
}