Program: 95776
Project: 95776
Buggy source:
@Override public int getColumnFromString(final String colPath,final String op){
  Integer result=EventThreadQueuerJavaFXImpl.invokeAndWait("String_Node_Str",new Callable<Integer>(){
    @Override public Integer call() throws Exception {
      TableView table=getRealComponent();
      TableColumn column=null;
      List<String> path=StringParsing.splitToList(colPath,TestDataConstants.PATH_CHAR_DEFAULT,TestDataConstants.ESCAPE_CHAR_DEFAULT,false);
      ObservableList<TableColumn> columns;
      if (colPath.contains("String_Node_Str" + TestDataConstants.PATH_CHAR_DEFAULT)) {
        columns=table.getColumns();
      }
 else {
        columns=table.getVisibleLeafColumns();
      }
      Iterator<String> pathIterator=path.iterator();
      String currCol=null;
      while (pathIterator.hasNext()) {
        try {
          currCol=pathIterator.next();
          int usrIdxCol=Integer.parseInt(currCol);
          if (usrIdxCol == 0) {
            usrIdxCol=usrIdxCol + 1;
          }
          int i=IndexConverter.toImplementationIndex(usrIdxCol);
          if (pathIterator.hasNext()) {
            columns=columns.get(i).getColumns();
          }
 else {
            column=columns.get(i);
          }
        }
 catch (        NumberFormatException nfe) {
          try {
            columns=table.getColumns();
            if (columns.size() <= 0) {
              throw new StepExecutionException("String_Node_Str",EventFactory.createActionError(TestErrorEvent.NO_HEADER));
            }
            for (int i=0; i < columns.size(); i++) {
              TableColumn c=columns.get(i);
              String header=c.getText();
              if (MatchUtil.getInstance().match(header,currCol,op)) {
                if (pathIterator.hasNext()) {
                  columns=columns.get(i).getColumns();
                }
 else {
                  column=columns.get(i);
                }
              }
            }
          }
 catch (          IllegalArgumentException iae) {
          }
        }
      }
      if (table.getVisibleLeafColumns().contains(column)) {
        return table.getVisibleLeafColumns().indexOf(column);
      }
      m_columns.add(column);
      return m_columns.indexOf(column);
    }
  }
);
  return result.intValue();
}

Fixed version (ground truth):
@Override public int getColumnFromString(final String colPath,final String op){
  Integer result=EventThreadQueuerJavaFXImpl.invokeAndWait("String_Node_Str",new Callable<Integer>(){
    @Override public Integer call() throws Exception {
      TableView table=getRealComponent();
      TableColumn column=null;
      List<String> path=StringParsing.splitToList(colPath,TestDataConstants.PATH_CHAR_DEFAULT,TestDataConstants.ESCAPE_CHAR_DEFAULT,false);
      ObservableList<TableColumn> columns;
      if (colPath.contains("String_Node_Str" + TestDataConstants.PATH_CHAR_DEFAULT)) {
        columns=table.getColumns();
      }
 else {
        columns=table.getVisibleLeafColumns();
      }
      Iterator<String> pathIterator=path.iterator();
      String currCol=null;
      while (pathIterator.hasNext()) {
        try {
          currCol=pathIterator.next();
          int usrIdxCol=Integer.parseInt(currCol);
          if (usrIdxCol == 0) {
            usrIdxCol=usrIdxCol + 1;
          }
          int i=IndexConverter.toImplementationIndex(usrIdxCol);
          if (pathIterator.hasNext()) {
            columns=columns.get(i).getColumns();
          }
 else {
            column=columns.get(i);
          }
        }
 catch (        NumberFormatException nfe) {
          try {
            if (path.size() <= 1) {
              columns=table.getColumns();
            }
            if (columns.size() <= 0) {
              throw new StepExecutionException("String_Node_Str",EventFactory.createActionError(TestErrorEvent.NO_HEADER));
            }
            for (            TableColumn c : columns) {
              String header=c.getText();
              if (MatchUtil.getInstance().match(header,currCol,op)) {
                column=c;
                if (pathIterator.hasNext()) {
                  columns=c.getColumns();
                }
                break;
              }
            }
          }
 catch (          IllegalArgumentException iae) {
          }
        }
      }
      if (column == null) {
        throw new StepExecutionException("String_Node_Str",EventFactory.createActionError(TestErrorEvent.NOT_FOUND));
      }
      if (table.getVisibleLeafColumns().contains(column)) {
        return table.getVisibleLeafColumns().indexOf(column);
      }
      m_columns.add(column);
      return m_columns.indexOf(column);
    }
  }
);
  return result.intValue();
}