Program: 107893
Project: 107893
Buggy source:
/** 
 * Creates a new instance.
 * @param parent
 * @param controller
 */
public ViewClipboard(final Composite parent,final Controller controller){
  Image imageDown=controller.getResources().getManagedImage("String_Node_Str");
  Image imageUp=controller.getResources().getManagedImage("String_Node_Str");
  Image imageSort=controller.getResources().getManagedImage("String_Node_Str");
  Image imageRemove=controller.getResources().getManagedImage("String_Node_Str");
  controller.addListener(ModelPart.CLIPBOARD,this);
  controller.addListener(ModelPart.MODEL,this);
  controller.addListener(ModelPart.SELECTED_NODE,this);
  this.controller=controller;
  ComponentTitledFolderButtonBar bar=new ComponentTitledFolderButtonBar("String_Node_Str");
  bar.add(Resources.getMessage("String_Node_Str"),imageRemove,new Runnable(){
    public void run(){
      actionRemove();
    }
  }
);
  bar.add(Resources.getMessage("String_Node_Str"),imageUp,new Runnable(){
    public void run(){
      actionUp();
    }
  }
);
  bar.add(Resources.getMessage("String_Node_Str"),imageDown,new Runnable(){
    public void run(){
      actionDown();
    }
  }
);
  bar.add(Resources.getMessage("String_Node_Str"),imageSort,new Runnable(){
    public void run(){
      actionSort();
    }
  }
);
  ComponentTitledFolder border=new ComponentTitledFolder(parent,controller,bar,null);
  GridData data=SWTUtil.createFillGridData();
  data.heightHint=70;
  border.setLayoutData(data);
  root=border.createItem(Resources.getMessage("String_Node_Str"),null);
  root.setLayout(new FillLayout());
  border.setSelection(0);
  border.setEnabled(true);
  table=SWTUtil.createTableDynamic(root,SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL| SWT.H_SCROLL);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  final DynamicTableColumn c=new DynamicTableColumn(table,SWT.LEFT);
  c.setText(Resources.getMessage("String_Node_Str"));
  c.setWidth("String_Node_Str","String_Node_Str");
  final DynamicTableColumn c2=new DynamicTableColumn(table,SWT.LEFT);
  c2.setText(Resources.getMessage("String_Node_Str"));
  c2.setWidth("String_Node_Str","String_Node_Str");
  c.pack();
  c2.pack();
  SWTUtil.createGenericTooltip(table);
  table.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      final TableItem[] s=table.getSelection();
      if (s.length > 0) {
        final ARXNode node=(ARXNode)s[0].getData();
        selectedItem=s[0];
        model.setSelectedNode(node);
        controller.update(new ModelEvent(ViewClipboard.this,ModelPart.SELECTED_NODE,node));
      }
    }
  }
);
  this.menu=createMenu(parent);
  table.addListener(SWT.MouseDown,new Listener(){
    @Override public void handleEvent(    final Event event){
      if (event.button == 3) {
        final TableItem i=getItemAt(event.x,event.y);
        if (i != null) {
          final ARXNode node=(ARXNode)i.getData();
          model.setSelectedNode(node);
          controller.update(new ModelEvent(ViewClipboard.this,ModelPart.SELECTED_NODE,node));
          selectedItem=i;
          Point point=table.toDisplay(event.x,event.y);
          Rectangle bounds=i.getBounds();
          bounds.x=table.toDisplay(bounds.x,bounds.y).x;
          bounds.y=table.toDisplay(bounds.x,bounds.y).y;
          menu.setLocation(point);
          menu.setVisible(true);
        }
      }
    }
  }
);
}

Fixed version (ground truth):
/** 
 * Creates a new instance.
 * @param parent
 * @param controller
 */
public ViewClipboard(final Composite parent,final Controller controller){
  Image imageDown=controller.getResources().getManagedImage("String_Node_Str");
  Image imageUp=controller.getResources().getManagedImage("String_Node_Str");
  Image imageSort=controller.getResources().getManagedImage("String_Node_Str");
  Image imageRemove=controller.getResources().getManagedImage("String_Node_Str");
  controller.addListener(ModelPart.CLIPBOARD,this);
  controller.addListener(ModelPart.MODEL,this);
  controller.addListener(ModelPart.SELECTED_NODE,this);
  this.controller=controller;
  ComponentTitledFolderButtonBar bar=new ComponentTitledFolderButtonBar("String_Node_Str");
  bar.add(Resources.getMessage("String_Node_Str"),imageRemove,new Runnable(){
    public void run(){
      actionRemove();
    }
  }
);
  bar.add(Resources.getMessage("String_Node_Str"),imageUp,new Runnable(){
    public void run(){
      actionUp();
    }
  }
);
  bar.add(Resources.getMessage("String_Node_Str"),imageDown,new Runnable(){
    public void run(){
      actionDown();
    }
  }
);
  bar.add(Resources.getMessage("String_Node_Str"),imageSort,new Runnable(){
    public void run(){
      actionSort();
    }
  }
);
  ComponentTitledFolder border=new ComponentTitledFolder(parent,controller,bar,null);
  GridData data=SWTUtil.createFillGridData();
  data.heightHint=70;
  border.setLayoutData(data);
  root=border.createItem(Resources.getMessage("String_Node_Str"),null);
  root.setLayout(new FillLayout());
  border.setSelection(0);
  border.setEnabled(true);
  table=SWTUtil.createTableDynamic(root,SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL| SWT.H_SCROLL| SWT.FULL_SELECTION);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  final DynamicTableColumn c=new DynamicTableColumn(table,SWT.LEFT);
  c.setText(Resources.getMessage("String_Node_Str"));
  c.setWidth("String_Node_Str","String_Node_Str");
  final DynamicTableColumn c2=new DynamicTableColumn(table,SWT.LEFT);
  c2.setText(Resources.getMessage("String_Node_Str"));
  c2.setWidth("String_Node_Str","String_Node_Str");
  c.pack();
  c2.pack();
  SWTUtil.createGenericTooltip(table);
  table.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      final TableItem[] s=table.getSelection();
      if (s.length > 0) {
        final ARXNode node=(ARXNode)s[0].getData();
        selectedItem=s[0];
        model.setSelectedNode(node);
        controller.update(new ModelEvent(ViewClipboard.this,ModelPart.SELECTED_NODE,node));
      }
    }
  }
);
  this.menu=createMenu(parent);
  table.addListener(SWT.MouseDown,new Listener(){
    @Override public void handleEvent(    final Event event){
      if (event.button == 3) {
        final TableItem i=getItemAt(event.x,event.y);
        if (i != null) {
          final ARXNode node=(ARXNode)i.getData();
          model.setSelectedNode(node);
          controller.update(new ModelEvent(ViewClipboard.this,ModelPart.SELECTED_NODE,node));
          selectedItem=i;
          Point point=table.toDisplay(event.x,event.y);
          Rectangle bounds=i.getBounds();
          bounds.x=table.toDisplay(bounds.x,bounds.y).x;
          bounds.y=table.toDisplay(bounds.x,bounds.y).y;
          menu.setLocation(point);
          menu.setVisible(true);
        }
      }
    }
  }
);
}