Program: 139747
Project: 139747
Buggy source:
/** 
 * DOC xqliu Comment method "creatNewJoinElementLine".
 * @param joinElement
 */
private void creatNewJoinElementLine(JoinElement joinElement){
  final Composite expressComp=new Composite(joinElementComp,SWT.NONE);
  expressComp.setLayout(new GridLayout(6,false));
  final JoinElement fje=joinElement;
  boolean flag=false;
  if (fje.getColA() != null && fje.getColB() != null && fje.getOperator() != null) {
    flag=true;
  }
  final Label labelL=new Label(expressComp,SWT.NONE);
  labelL.setImage(ImageLib.getImage(ImageLib.TD_COLUMN));
  GridDataFactory.fillDefaults().span(1,1).grab(false,false).applyTo(labelL);
  final Text textL=new Text(expressComp,SWT.BORDER);
  textL.setEditable(false);
  textL.setText(flag ? fje.getColA().getName() : PluginConstant.EMPTY_STRING);
  GridDataFactory.fillDefaults().span(1,1).grab(true,false).applyTo(textL);
  ((GridData)textL.getLayoutData()).widthHint=100;
  DropTarget targetL=new DropTarget(textL,DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT);
  targetL.setTransfer(new Transfer[]{transfer});
  targetL.addDropListener(new ColumnDropTargetListener(fje,ColumnDropTargetListener.LEFT));
  final CCombo combo=new CCombo(expressComp,SWT.BORDER);
  combo.setEditable(false);
  combo.setItems(OPERATORS);
  combo.setText(flag ? fje.getOperator() : DEFAULT_OPERATOR);
  GridDataFactory.fillDefaults().span(1,1).grab(false,false).applyTo(combo);
  combo.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      fje.setOperator(combo.getText());
      setDirty(true);
    }
  }
);
  final Label labelR=new Label(expressComp,SWT.NONE);
  labelR.setImage(ImageLib.getImage(ImageLib.TD_COLUMN));
  GridDataFactory.fillDefaults().span(1,1).grab(false,false).applyTo(labelR);
  final Text textR=new Text(expressComp,SWT.BORDER);
  textR.setEditable(false);
  textR.setText(flag ? fje.getColB().getName() : PluginConstant.EMPTY_STRING);
  GridDataFactory.fillDefaults().span(1,1).grab(true,false).applyTo(textR);
  ((GridData)textR.getLayoutData()).widthHint=100;
  DropTarget targetR=new DropTarget(textR,DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT);
  targetR.setTransfer(new Transfer[]{transfer});
  targetR.addDropListener(new ColumnDropTargetListener(fje,ColumnDropTargetListener.RIGHT));
  Button delButton=new Button(expressComp,SWT.NONE);
  delButton.setImage(ImageLib.getImage(ImageLib.DELETE_ACTION));
  delButton.setToolTipText(DefaultMessagesImpl.getString("String_Node_Str"));
  GridDataFactory.fillDefaults().span(1,1).grab(false,false).applyTo(delButton);
  delButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      tempJoinElements.remove(fje);
      expressComp.dispose();
      joinElementComp.layout();
      form.reflow(true);
      setDirty(true);
    }
  }
);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.FILL).grab(true,false).applyTo(expressComp);
}

Fixed version (ground truth):
/** 
 * DOC xqliu Comment method "creatNewJoinElementLine".
 * @param joinElement
 */
private void creatNewJoinElementLine(JoinElement joinElement){
  final Composite expressComp=new Composite(joinElementComp,SWT.NONE);
  expressComp.setLayout(new GridLayout(6,false));
  final JoinElement fje=joinElement;
  boolean flag=false;
  if (fje.getColA() != null && fje.getColB() != null && fje.getOperator() != null) {
    flag=true;
  }
  final Label labelL=new Label(expressComp,SWT.NONE);
  labelL.setImage(ImageLib.getImage(ImageLib.TD_COLUMN));
  GridDataFactory.fillDefaults().span(1,1).grab(false,false).applyTo(labelL);
  final Text textL=new Text(expressComp,SWT.BORDER);
  textL.setEditable(false);
  textL.setText(flag ? fje.getColA().getName() : PluginConstant.EMPTY_STRING);
  GridDataFactory.fillDefaults().span(1,1).grab(true,false).applyTo(textL);
  ((GridData)textL.getLayoutData()).widthHint=100;
  DropTarget targetL=new DropTarget(textL,DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT);
  targetL.setTransfer(new Transfer[]{transfer});
  targetL.addDropListener(new ColumnDropTargetListener(fje,ColumnDropTargetListener.LEFT));
  final CCombo combo=new CCombo(expressComp,SWT.BORDER);
  combo.setEditable(false);
  combo.setItems(OPERATORS);
  combo.setText(flag ? fje.getOperator() : DEFAULT_OPERATOR);
  GridDataFactory.fillDefaults().span(1,1).grab(false,false).applyTo(combo);
  combo.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      fje.setOperator(combo.getText());
      setDirty(true);
    }
  }
);
  final Label labelR=new Label(expressComp,SWT.NONE);
  labelR.setImage(ImageLib.getImage(ImageLib.TD_COLUMN));
  GridDataFactory.fillDefaults().span(1,1).grab(false,false).applyTo(labelR);
  final Text textR=new Text(expressComp,SWT.BORDER);
  textR.setEditable(false);
  textR.setText(flag ? fje.getColB().getName() : PluginConstant.EMPTY_STRING);
  GridDataFactory.fillDefaults().span(1,1).grab(true,false).applyTo(textR);
  ((GridData)textR.getLayoutData()).widthHint=100;
  DropTarget targetR=new DropTarget(textR,DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT);
  targetR.setTransfer(new Transfer[]{transfer});
  targetR.addDropListener(new ColumnDropTargetListener(fje,ColumnDropTargetListener.RIGHT));
  Button delButton=new Button(expressComp,SWT.NONE);
  delButton.setImage(ImageLib.getImage(ImageLib.DELETE_ACTION));
  delButton.setToolTipText(DefaultMessagesImpl.getString("String_Node_Str"));
  GridDataFactory.fillDefaults().span(1,1).grab(false,false).applyTo(delButton);
  delButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      tempJoinElements.remove(fje);
      expressComp.dispose();
      joinConditionSection.setExpanded(true);
      setDirty(true);
    }
  }
);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.FILL).grab(true,false).applyTo(expressComp);
}