Program: 119135
Project: 119135
Buggy source:
/** 
 * Create the composite
 * @param parent
 * @param style
 */
public CategoryComposite(Composite parent,int style,CategoryManager manager){
  super(parent,style);
  this.manager=manager;
  setLayout(new FillLayout());
  final SashForm sashForm=new SashForm(this,SWT.NONE);
  final SashForm sashForm1=new SashForm(sashForm,SWT.HORIZONTAL);
  final Composite composite=new Composite(sashForm1,SWT.BORDER);
  final GridLayout gridLayout=new GridLayout();
  gridLayout.marginWidth=0;
  gridLayout.marginHeight=0;
  gridLayout.verticalSpacing=0;
  gridLayout.horizontalSpacing=0;
  composite.setLayout(gridLayout);
  final CLabel categoryLabel=new CLabel(composite,SWT.SHADOW_OUT);
  categoryLabel.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false));
  categoryLabel.setText(Messages.getString("String_Node_Str"));
  final ListViewer categoryViewer=new ListViewer(composite,SWT.V_SCROLL | SWT.H_SCROLL);
  categoryViewer.setLabelProvider(new LabelProvider(){
    @Override public String getText(    Object element){
      return ((Category)element).getName();
    }
  }
);
  categoryViewer.setContentProvider(new ArrayContentProvider());
  categoryViewer.setSorter(new ViewerSorter());
  categoryList=categoryViewer.getList();
  categoryList.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  final Composite composite1=new Composite(sashForm1,SWT.BORDER);
  final GridLayout gridLayout1=new GridLayout();
  gridLayout1.verticalSpacing=0;
  gridLayout1.horizontalSpacing=0;
  gridLayout1.marginWidth=0;
  gridLayout1.marginHeight=0;
  composite1.setLayout(gridLayout1);
  final CLabel functionLabel=new CLabel(composite1,SWT.SHADOW_OUT);
  functionLabel.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false));
  functionLabel.setText(Messages.getString("String_Node_Str"));
  functionViewer=new ListViewer(composite1,SWT.V_SCROLL | SWT.H_SCROLL);
  functionViewer.setContentProvider(new ArrayContentProvider());
  functionViewer.setLabelProvider(new LabelProvider(){
    @Override public String getText(    Object element){
      return ((Function)element).getName();
    }
  }
);
  functionViewer.setSorter(new ViewerSorter());
  functionList=functionViewer.getList();
  functionList.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  DragSource source=new DragSource(functionList,DND.DROP_MOVE | DND.DROP_COPY);
  source.setTransfer(new Transfer[]{textTransfer});
  source.addDragListener(new DragSourceListener(){
    @Override public void dragStart(    DragSourceEvent event){
      if (functionList.getSelection().equals("String_Node_Str")) {
        event.doit=false;
      }
    }
    @Override public void dragSetData(    DragSourceEvent event){
      if (textTransfer.isSupportedType(event.dataType)) {
        Function function=(Function)((IStructuredSelection)functionViewer.getSelection()).getFirstElement();
        VirtualMetadataColumn column=new VirtualMetadataColumn();
        column.setTalendType(function.getTalendType().getName());
        column.setFunction(function);
        event.data=(FunctionManagerExt.getOneColData(column,false));
      }
    }
    @Override public void dragFinished(    DragSourceEvent event){
    }
  }
);
  sashForm1.setWeights(new int[]{1,1});
  Composite docComposite=new Composite(sashForm,SWT.BORDER);
  GridLayout docLayout=new GridLayout();
  docLayout.marginTop=0;
  docLayout.marginBottom=0;
  docLayout.marginHeight=0;
  docLayout.marginLeft=0;
  docLayout.marginWidth=0;
  docLayout.marginHeight=0;
  docComposite.setLayout(docLayout);
  Label docLabel=new Label(docComposite,SWT.NONE);
  docLabel.setText(Messages.getString("String_Node_Str"));
  if (TalendPropertiesUtil.isEnabledUseBrowser()) {
    final Browser docDisplayer=new Browser(docComposite,SWT.BORDER);
    docDisplayer.setText(Messages.getString("String_Node_Str"));
    docDisplayer.setLayoutData(new GridData(GridData.FILL_BOTH));
    sashForm.setWeights(new int[]{2,1});
    new UIRelationShipLinker(categoryViewer,functionViewer,docDisplayer);
  }
 else {
    final Text descriptionText=new Text(docComposite,SWT.BORDER | SWT.WRAP);
    descriptionText.setText(Messages.getString("String_Node_Str"));
    GridData gd=new GridData(GridData.FILL_BOTH);
    descriptionText.setLayoutData(gd);
    sashForm.setWeights(new int[]{2,1});
    new UIRelationShipLinker(categoryViewer,functionViewer,descriptionText);
  }
  initializeData(categoryViewer);
  categoryViewer.getList().setFocus();
}

Fixed version (ground truth):
/** 
 * Create the composite
 * @param parent
 * @param style
 */
public CategoryComposite(Composite parent,int style,CategoryManager manager){
  super(parent,style);
  this.manager=manager;
  setLayout(new FillLayout());
  final SashForm sashForm=new SashForm(this,SWT.NONE);
  final SashForm sashForm1=new SashForm(sashForm,SWT.HORIZONTAL);
  final Composite composite=new Composite(sashForm1,SWT.BORDER);
  final GridLayout gridLayout=new GridLayout();
  gridLayout.marginWidth=0;
  gridLayout.marginHeight=0;
  gridLayout.verticalSpacing=0;
  gridLayout.horizontalSpacing=0;
  composite.setLayout(gridLayout);
  final CLabel categoryLabel=new CLabel(composite,SWT.SHADOW_OUT);
  categoryLabel.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false));
  categoryLabel.setText(Messages.getString("String_Node_Str"));
  final ListViewer categoryViewer=new ListViewer(composite,SWT.V_SCROLL | SWT.H_SCROLL);
  categoryViewer.setLabelProvider(new LabelProvider(){
    @Override public String getText(    Object element){
      return ((Category)element).getName();
    }
  }
);
  categoryViewer.setContentProvider(new ArrayContentProvider());
  categoryViewer.setSorter(new ViewerSorter());
  categoryList=categoryViewer.getList();
  categoryList.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  final Composite composite1=new Composite(sashForm1,SWT.BORDER);
  final GridLayout gridLayout1=new GridLayout();
  gridLayout1.verticalSpacing=0;
  gridLayout1.horizontalSpacing=0;
  gridLayout1.marginWidth=0;
  gridLayout1.marginHeight=0;
  composite1.setLayout(gridLayout1);
  final CLabel functionLabel=new CLabel(composite1,SWT.SHADOW_OUT);
  functionLabel.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false));
  functionLabel.setText(Messages.getString("String_Node_Str"));
  functionViewer=new ListViewer(composite1,SWT.V_SCROLL | SWT.H_SCROLL);
  functionViewer.setContentProvider(new ArrayContentProvider());
  functionViewer.setLabelProvider(new LabelProvider(){
    @Override public String getText(    Object element){
      return ((Function)element).getFunctionString();
    }
  }
);
  functionViewer.setSorter(new ViewerSorter());
  functionList=functionViewer.getList();
  functionList.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  DragSource source=new DragSource(functionList,DND.DROP_MOVE | DND.DROP_COPY);
  source.setTransfer(new Transfer[]{textTransfer});
  source.addDragListener(new DragSourceListener(){
    @Override public void dragStart(    DragSourceEvent event){
      if (functionList.getSelection().equals("String_Node_Str")) {
        event.doit=false;
      }
    }
    @Override public void dragSetData(    DragSourceEvent event){
      if (textTransfer.isSupportedType(event.dataType)) {
        Function function=(Function)((IStructuredSelection)functionViewer.getSelection()).getFirstElement();
        VirtualMetadataColumn column=new VirtualMetadataColumn();
        column.setTalendType(function.getTalendType().getName());
        column.setFunction(function);
        event.data=(FunctionManagerExt.getOneColData(column,false));
      }
    }
    @Override public void dragFinished(    DragSourceEvent event){
    }
  }
);
  sashForm1.setWeights(new int[]{1,1});
  Composite docComposite=new Composite(sashForm,SWT.BORDER);
  GridLayout docLayout=new GridLayout();
  docLayout.marginTop=0;
  docLayout.marginBottom=0;
  docLayout.marginHeight=0;
  docLayout.marginLeft=0;
  docLayout.marginWidth=0;
  docLayout.marginHeight=0;
  docComposite.setLayout(docLayout);
  Label docLabel=new Label(docComposite,SWT.NONE);
  docLabel.setText(Messages.getString("String_Node_Str"));
  if (TalendPropertiesUtil.isEnabledUseBrowser()) {
    final Browser docDisplayer=new Browser(docComposite,SWT.BORDER);
    docDisplayer.setText(Messages.getString("String_Node_Str"));
    docDisplayer.setLayoutData(new GridData(GridData.FILL_BOTH));
    sashForm.setWeights(new int[]{2,1});
    new UIRelationShipLinker(categoryViewer,functionViewer,docDisplayer);
  }
 else {
    final Text descriptionText=new Text(docComposite,SWT.BORDER | SWT.WRAP);
    descriptionText.setText(Messages.getString("String_Node_Str"));
    GridData gd=new GridData(GridData.FILL_BOTH);
    descriptionText.setLayoutData(gd);
    sashForm.setWeights(new int[]{2,1});
    new UIRelationShipLinker(categoryViewer,functionViewer,descriptionText);
  }
  initializeData(categoryViewer);
  categoryViewer.getList().setFocus();
}