Program: 107744
Project: 107744
Buggy source:
/** 
 * Updates the list.
 * @param result
 * @param filter
 */
private void update(final ARXResult result,final ModelNodeFilter filter){
  if (result == null || result.getLattice() == null)   return;
  if (filter == null)   return;
  getController().getResources().getDisplay().asyncExec(new Runnable(){
    @Override public void run(){
      if (!table.isEnabled()) {
        SWTUtil.enable(table);
      }
      table.setRedraw(false);
      for (      final TableItem i : table.getItems()) {
        i.dispose();
      }
      list.clear();
      final ARXLattice l=getModel().getProcessStatistics().getNumberOfSteps() > 1 ? getModel().getProcessStatistics().getLattice() : result.getLattice();
      for (      final ARXNode[] level : l.getLevels()) {
        for (        final ARXNode node : level) {
          if (filter.isAllowed(result.getLattice(),node)) {
            list.add(node);
          }
        }
      }
      Collections.sort(list,new Comparator<ARXNode>(){
        @Override public int compare(        final ARXNode arg0,        final ARXNode arg1){
          return arg0.getHighestScore().compareTo(arg1.getHighestScore());
        }
      }
);
      if (list.size() > getModel().getMaxNodesInViewer()) {
        list.clear();
      }
      if (listener != null) {
        table.removeListener(SWT.SetData,listener);
      }
      listener=new Listener(){
        @Override public void handleEvent(        final Event event){
          final TableItem item=(TableItem)event.item;
          final int index=table.indexOf(item);
          createItem(item,index);
        }
      }
;
      table.addListener(SWT.SetData,listener);
      table.setItemCount(list.size());
      table.setRedraw(true);
    }
  }
);
}

Fixed version (ground truth):
/** 
 * Updates the list.
 * @param result
 * @param filter
 */
private void update(final ARXResult result,final ModelNodeFilter filter){
  if (result == null || result.getLattice() == null)   return;
  if (filter == null)   return;
  getController().getResources().getDisplay().asyncExec(new Runnable(){
    @Override public void run(){
      if (!table.isEnabled()) {
        SWTUtil.enable(table);
      }
      table.setRedraw(false);
      for (      final TableItem i : table.getItems()) {
        i.dispose();
      }
      list.clear();
      final ARXLattice lattice=getModel().getProcessStatistics().getNumberOfSteps() > 1 ? getModel().getProcessStatistics().getLattice() : result.getLattice();
      for (      final ARXNode[] level : lattice.getLevels()) {
        for (        final ARXNode node : level) {
          if (filter.isAllowed(lattice,node)) {
            list.add(node);
          }
        }
      }
      Collections.sort(list,new Comparator<ARXNode>(){
        @Override public int compare(        final ARXNode arg0,        final ARXNode arg1){
          return arg0.getHighestScore().compareTo(arg1.getHighestScore());
        }
      }
);
      if (list.size() > getModel().getMaxNodesInViewer()) {
        list.clear();
      }
      if (listener != null) {
        table.removeListener(SWT.SetData,listener);
      }
      listener=new Listener(){
        @Override public void handleEvent(        final Event event){
          final TableItem item=(TableItem)event.item;
          final int index=table.indexOf(item);
          createItem(item,index);
        }
      }
;
      table.addListener(SWT.SetData,listener);
      table.setItemCount(list.size());
      table.setRedraw(true);
    }
  }
);
}