Program: 168486
Project: 168486
Buggy source:
/** 
 * Adds a row sorter to <code>table</code> with the specified table model. Optionally, a list of Comparators can be supplied, one for each column, that specify the correct way of comparing the objects in that column. Null values means the default comparator will be used.<br> <b>Only Java 6+ virtual machines will support this, so check first with isJava6OrHigher() or risk to crash your program.</b>
 * @param table
 * @param tableModel
 * @param defaultSortColumn the column on which to sort on by default.
 * @param columnComparators
 */
public static void addRowSorter(JTable table,DefaultTableModel tableModel,int defaultSortColumn,List<Comparator<?>> columnComparators){
  TableRowSorter<DefaultTableModel> sorter=new TableRowSorter<DefaultTableModel>(tableModel);
  int i=0;
  for (  Comparator<?> c : columnComparators) {
    if (c != null)     sorter.setComparator(i,c);
    ++i;
  }
  sorter.toggleSortOrder(defaultSortColumn);
  try {
    Class<? extends JTable> c=table.getClass();
    Method m=c.getMethod("String_Node_Str",RowSorter.class);
    m.invoke(table,sorter);
  }
 catch (  NoSuchMethodException ex) {
    throw new RuntimeException(ex);
  }
catch (  IllegalAccessException ex) {
    throw new RuntimeException(ex);
  }
catch (  IllegalArgumentException ex) {
    throw new RuntimeException(ex);
  }
catch (  InvocationTargetException ex) {
    throw new RuntimeException(ex);
  }
}

Fixed version (ground truth):
/** 
 * Adds a row sorter to <code>table</code> with the specified table model. Optionally, a list of Comparators can be supplied, one for each column, that specify the correct way of comparing the objects in that column. Null values means the default comparator will be used.<br> <b>Only Java 6+ virtual machines will support this, so check first with isJava6OrHigher() or risk to crash your program.</b>
 * @param table
 * @param tableModel
 * @param defaultSortColumn the column on which to sort on by default.
 * @param columnComparators
 */
public static void addRowSorter(JTable table,DefaultTableModel tableModel,int defaultSortColumn,List<Comparator<?>> columnComparators){
  try {
    final Class<? extends Object> rowSorterClass=Class.forName("String_Node_Str");
    final Class<? extends Object> tableRowSorterClass=Class.forName("String_Node_Str");
    final Method tableRowSorterSetComparatorMethod=tableRowSorterClass.getMethod("String_Node_Str",int.class,Comparator.class);
    final Method tableRowSorterToggleSortOrderMethod=tableRowSorterClass.getMethod("String_Node_Str",int.class);
    final Object sorter=tableRowSorterClass.getConstructor(TableModel.class).newInstance(tableModel);
    int i=0;
    for (    Comparator<?> c : columnComparators) {
      if (c != null) {
        tableRowSorterSetComparatorMethod.invoke(sorter,i,c);
      }
      ++i;
    }
    tableRowSorterToggleSortOrderMethod.invoke(sorter,defaultSortColumn);
    Class<? extends JTable> c=table.getClass();
    Method m=c.getMethod("String_Node_Str",rowSorterClass);
    m.invoke(table,sorter);
  }
 catch (  ClassNotFoundException ex) {
    throw new RuntimeException(ex);
  }
catch (  InstantiationException ex) {
    throw new RuntimeException(ex);
  }
catch (  NoSuchMethodException ex) {
    throw new RuntimeException(ex);
  }
catch (  IllegalAccessException ex) {
    throw new RuntimeException(ex);
  }
catch (  IllegalArgumentException ex) {
    throw new RuntimeException(ex);
  }
catch (  InvocationTargetException ex) {
    throw new RuntimeException(ex);
  }
}