Program: 10717
Project: 10717
Buggy source:
private void createServicesSection(){
  servicesSection=toolkit.createSection(getSection().getParent(),Section.TITLE_BAR | Section.DESCRIPTION | Section.TWISTIE);
  servicesSection.setLayout(new GridLayout());
  GridDataFactory.fillDefaults().grab(true,true).applyTo(servicesSection);
  servicesSection.setText("String_Node_Str");
  servicesSection.setDescription("String_Node_Str");
  servicesSection.addExpansionListener(new ExpansionAdapter(){
    @Override public void expansionStateChanged(    ExpansionEvent e){
      userExpanded=true;
    }
  }
);
  Composite client=toolkit.createComposite(servicesSection);
  client.setLayout(new GridLayout());
  GridDataFactory.fillDefaults().grab(true,true).applyTo(client);
  servicesSection.setClient(client);
  Composite headerComposite=toolkit.createComposite(servicesSection,SWT.NONE);
  RowLayout rowLayout=new RowLayout();
  rowLayout.marginTop=0;
  rowLayout.marginBottom=0;
  headerComposite.setLayout(rowLayout);
  headerComposite.setBackground(null);
  ToolBarManager toolBarManager=new ToolBarManager(SWT.FLAT);
  toolBarManager.createControl(headerComposite);
  servicesViewer=new TableViewer(toolkit.createTable(client,SWT.MULTI));
  new ServiceViewerConfigurator().configureViewer(servicesViewer);
  servicesViewer.setContentProvider(new TreeContentProvider());
  servicesViewer.setLabelProvider(new ServicesTreeLabelProvider(servicesViewer){
    protected Image getColumnImage(    CloudService service,    ServiceViewColumn column){
      if (column == ServiceViewColumn.Tunnel) {
        TunnelBehaviour handler=new TunnelBehaviour(cloudServer);
        if (handler.hasCaldecottTunnel(service.getName())) {
          return CloudFoundryImages.getImage(CloudFoundryImages.CONNECT);
        }
      }
      return null;
    }
  }
);
  servicesViewer.setSorter(new ServiceViewerSorter(servicesViewer,cloudServer.hasCloudSpace()){
    @Override protected int compare(    CloudService service1,    CloudService service2,    ServiceViewColumn sortColumn){
      if (sortColumn == ServiceViewColumn.Tunnel) {
        TunnelBehaviour handler=new TunnelBehaviour(cloudServer);
        if (handler.hasCaldecottTunnel(service1.getName())) {
          return -1;
        }
 else         if (handler.hasCaldecottTunnel(service2.getName())) {
          return 1;
        }
 else {
          return 0;
        }
      }
      return super.compare(service1,service2,sortColumn);
    }
  }
);
  servicesViewer.setInput(new CloudService[0]);
  GridDataFactory.fillDefaults().grab(true,true).applyTo(servicesViewer.getControl());
  Action addServiceAction=new Action("String_Node_Str",CloudFoundryImages.NEW_SERVICE){
    @Override public void run(){
      IWizard wizard=new CloudFoundryServiceWizard(cloudServer);
      WizardDialog dialog=new WizardDialog(getSection().getShell(),wizard);
      dialog.setBlockOnOpen(true);
      dialog.open();
    }
  }
;
  toolBarManager.add(addServiceAction);
  toolBarManager.update(true);
  servicesSection.setTextClient(headerComposite);
  MenuManager menuManager=new MenuManager();
  menuManager.setRemoveAllWhenShown(true);
  menuManager.addMenuListener(new IMenuListener(){
    public void menuAboutToShow(    IMenuManager manager){
      fillServicesContextMenu(manager);
    }
  }
);
  Menu menu=menuManager.createContextMenu(servicesViewer.getControl());
  servicesViewer.getControl().setMenu(menu);
  editorPage.getSite().registerContextMenu(menuManager,servicesViewer);
  int ops=DND.DROP_COPY;
  Transfer[] transfers=new Transfer[]{LocalSelectionTransfer.getTransfer()};
  DragSourceAdapter listener=new DragSourceAdapter(){
    @Override public void dragSetData(    DragSourceEvent event){
      IStructuredSelection selection=(IStructuredSelection)servicesViewer.getSelection();
      event.data=selection.getFirstElement();
      LocalSelectionTransfer.getTransfer().setSelection(selection);
    }
    @Override public void dragStart(    DragSourceEvent event){
      if (event.detail == DND.DROP_NONE || event.detail == DND.DROP_DEFAULT) {
        event.detail=DND.DROP_COPY;
      }
      dragSetData(event);
    }
  }
;
  servicesViewer.addDragSupport(ops,transfers,listener);
  getManagedForm().getToolkit().paintBordersFor(client);
  userExpanded=false;
}

Fixed version (ground truth):
private void createServicesSection(){
  servicesSection=toolkit.createSection(getSection().getParent(),Section.TITLE_BAR | Section.DESCRIPTION | Section.TWISTIE);
  servicesSection.setLayout(new GridLayout());
  GridDataFactory.fillDefaults().grab(true,true).applyTo(servicesSection);
  servicesSection.setText("String_Node_Str");
  servicesSection.setExpanded(true);
  servicesSection.setDescription("String_Node_Str");
  Composite client=toolkit.createComposite(servicesSection);
  client.setLayout(new GridLayout());
  GridDataFactory.fillDefaults().grab(true,true).applyTo(client);
  servicesSection.setClient(client);
  Composite headerComposite=toolkit.createComposite(servicesSection,SWT.NONE);
  RowLayout rowLayout=new RowLayout();
  rowLayout.marginTop=0;
  rowLayout.marginBottom=0;
  headerComposite.setLayout(rowLayout);
  headerComposite.setBackground(null);
  ToolBarManager toolBarManager=new ToolBarManager(SWT.FLAT);
  toolBarManager.createControl(headerComposite);
  servicesViewer=new TableViewer(toolkit.createTable(client,SWT.MULTI));
  new ServiceViewerConfigurator().configureViewer(servicesViewer);
  servicesViewer.setContentProvider(new TreeContentProvider());
  servicesViewer.setLabelProvider(new ServicesTreeLabelProvider(servicesViewer){
    protected Image getColumnImage(    CloudService service,    ServiceViewColumn column){
      if (column == ServiceViewColumn.Tunnel) {
        TunnelBehaviour handler=new TunnelBehaviour(cloudServer);
        if (handler.hasCaldecottTunnel(service.getName())) {
          return CloudFoundryImages.getImage(CloudFoundryImages.CONNECT);
        }
      }
      return null;
    }
  }
);
  servicesViewer.setSorter(new ServiceViewerSorter(servicesViewer,cloudServer.hasCloudSpace()){
    @Override protected int compare(    CloudService service1,    CloudService service2,    ServiceViewColumn sortColumn){
      if (sortColumn == ServiceViewColumn.Tunnel) {
        TunnelBehaviour handler=new TunnelBehaviour(cloudServer);
        if (handler.hasCaldecottTunnel(service1.getName())) {
          return -1;
        }
 else         if (handler.hasCaldecottTunnel(service2.getName())) {
          return 1;
        }
 else {
          return 0;
        }
      }
      return super.compare(service1,service2,sortColumn);
    }
  }
);
  servicesViewer.setInput(new CloudService[0]);
  GridDataFactory.fillDefaults().grab(true,true).applyTo(servicesViewer.getControl());
  Action addServiceAction=new Action("String_Node_Str",CloudFoundryImages.NEW_SERVICE){
    @Override public void run(){
      IWizard wizard=new CloudFoundryServiceWizard(cloudServer);
      WizardDialog dialog=new WizardDialog(getSection().getShell(),wizard);
      dialog.setBlockOnOpen(true);
      dialog.open();
    }
  }
;
  toolBarManager.add(addServiceAction);
  toolBarManager.update(true);
  servicesSection.setTextClient(headerComposite);
  MenuManager menuManager=new MenuManager();
  menuManager.setRemoveAllWhenShown(true);
  menuManager.addMenuListener(new IMenuListener(){
    public void menuAboutToShow(    IMenuManager manager){
      fillServicesContextMenu(manager);
    }
  }
);
  Menu menu=menuManager.createContextMenu(servicesViewer.getControl());
  servicesViewer.getControl().setMenu(menu);
  editorPage.getSite().registerContextMenu(menuManager,servicesViewer);
  int ops=DND.DROP_COPY;
  Transfer[] transfers=new Transfer[]{LocalSelectionTransfer.getTransfer()};
  DragSourceAdapter listener=new DragSourceAdapter(){
    @Override public void dragSetData(    DragSourceEvent event){
      IStructuredSelection selection=(IStructuredSelection)servicesViewer.getSelection();
      event.data=selection.getFirstElement();
      LocalSelectionTransfer.getTransfer().setSelection(selection);
    }
    @Override public void dragStart(    DragSourceEvent event){
      if (event.detail == DND.DROP_NONE || event.detail == DND.DROP_DEFAULT) {
        event.detail=DND.DROP_COPY;
      }
      dragSetData(event);
    }
  }
;
  servicesViewer.addDragSupport(ops,transfers,listener);
  getManagedForm().getToolkit().paintBordersFor(client);
}