Program: 84864
Project: 84864
Buggy source:
private String fetchPassword(String coords,CommandLine cmd) throws IOException {
  String[] parts=coords.split("String_Node_Str");
  if (parts == null || parts.length != 2) {
    printHelpAndExit(options,"String_Node_Str");
  }
  String row=parts[0];
  String col=parts[1];
  String seq=cmd.getOptionValue("String_Node_Str");
  if (seq == null || seq.length() == 0) {
    seq=properties.getString("String_Node_Str");
  }
  if (seq == null) {
    seq=Sequence.DEFAULT_SEQUENCE;
  }
  Sequence sequence=null;
  try {
    sequence=Sequence.fromString(seq);
  }
 catch (  SequenceParseException e) {
    printHelpAndExit(options,"String_Node_Str" + e.getMessage());
  }
  Direction[] directionPriority=null;
  if (cmd.hasOption("String_Node_Str")) {
    String collision=cmd.getOptionValue("String_Node_Str");
    if ("String_Node_Str".equalsIgnoreCase(collision) || "String_Node_Str".equalsIgnoreCase(collision)) {
      directionPriority=Direction.clockwiseCompass();
    }
 else     if ("String_Node_Str".equalsIgnoreCase(collision) || "String_Node_Str".equalsIgnoreCase(collision)) {
      directionPriority=Direction.counterclockwiseCompass();
    }
 else {
      String[] cparts=collision.split("String_Node_Str");
      List<Direction> list=new ArrayList<Direction>();
      for (      String c : cparts) {
        try {
          list.add(Direction.fromString(c));
        }
 catch (        SequenceParseException e) {
          printHelpAndExit(options,"String_Node_Str" + e.getMessage());
        }
      }
      directionPriority=list.toArray(new Direction[list.size()]);
    }
  }
  boolean skipStart=false;
  if (cmd.hasOption("String_Node_Str") || properties.getBoolean("String_Node_Str",false)) {
    skipStart=true;
  }
  int skipInterval=properties.getInt("String_Node_Str",0);
  if (cmd.hasOption("String_Node_Str")) {
    String skipStr=cmd.getOptionValue("String_Node_Str");
    try {
      skipInterval=Integer.valueOf(skipStr);
    }
 catch (    NumberFormatException e) {
      printHelpAndExit(options,"String_Node_Str");
    }
  }
  if (skipInterval < 0) {
    printHelpAndExit(options,"String_Node_Str");
  }
  TabulaRecta tabulaRecta=getDatabase(cmd);
  int rowIndex=tabulaRecta.getHeader().getIndex(row);
  int colIndex=tabulaRecta.getHeader().getIndex(col);
  if (rowIndex == -1 || colIndex == -1) {
    die("String_Node_Str");
  }
  String password=tabulaRecta.getPassword(rowIndex,colIndex,sequence,skipStart,skipInterval,directionPriority);
  return password;
}

Fixed version (ground truth):
private String fetchPassword(String coords,CommandLine cmd) throws IOException {
  String[] parts=coords.split("String_Node_Str");
  if (parts == null || parts.length != 2) {
    printHelpAndExit(options,"String_Node_Str");
  }
  String row=parts[0];
  String col=parts[1];
  String seq=cmd.getOptionValue("String_Node_Str");
  if (seq == null || seq.length() == 0) {
    String[] seqItems=properties.getStringArray("String_Node_Str");
    seq=StringUtils.join(seqItems,"String_Node_Str");
  }
  if (seq == null) {
    seq=Sequence.DEFAULT_SEQUENCE;
  }
  Sequence sequence=null;
  try {
    sequence=Sequence.fromString(seq);
  }
 catch (  SequenceParseException e) {
    printHelpAndExit(options,"String_Node_Str" + e.getMessage());
  }
  Direction[] directionPriority=null;
  if (cmd.hasOption("String_Node_Str")) {
    String collision=cmd.getOptionValue("String_Node_Str");
    if ("String_Node_Str".equalsIgnoreCase(collision) || "String_Node_Str".equalsIgnoreCase(collision)) {
      directionPriority=Direction.clockwiseCompass();
    }
 else     if ("String_Node_Str".equalsIgnoreCase(collision) || "String_Node_Str".equalsIgnoreCase(collision)) {
      directionPriority=Direction.counterclockwiseCompass();
    }
 else {
      String[] cparts=collision.split("String_Node_Str");
      List<Direction> list=new ArrayList<Direction>();
      for (      String c : cparts) {
        try {
          list.add(Direction.fromString(c));
        }
 catch (        SequenceParseException e) {
          printHelpAndExit(options,"String_Node_Str" + e.getMessage());
        }
      }
      directionPriority=list.toArray(new Direction[list.size()]);
    }
  }
  boolean skipStart=false;
  if (cmd.hasOption("String_Node_Str") || properties.getBoolean("String_Node_Str",false)) {
    skipStart=true;
  }
  int skipInterval=properties.getInt("String_Node_Str",0);
  if (cmd.hasOption("String_Node_Str")) {
    String skipStr=cmd.getOptionValue("String_Node_Str");
    try {
      skipInterval=Integer.valueOf(skipStr);
    }
 catch (    NumberFormatException e) {
      printHelpAndExit(options,"String_Node_Str");
    }
  }
  if (skipInterval < 0) {
    printHelpAndExit(options,"String_Node_Str");
  }
  TabulaRecta tabulaRecta=getDatabase(cmd);
  int rowIndex=tabulaRecta.getHeader().getIndex(row);
  int colIndex=tabulaRecta.getHeader().getIndex(col);
  if (rowIndex == -1 || colIndex == -1) {
    die("String_Node_Str");
  }
  String password=tabulaRecta.getPassword(rowIndex,colIndex,sequence,skipStart,skipInterval,directionPriority);
  return password;
}