Program: 140183
Project: 140183
Buggy source:
private void creatNewExpressLine(RegularExpressionImpl regularExpress){
  final Composite expressComp=new Composite(componentsComp,SWT.NONE);
  expressComp.setLayout(new GridLayout(10,true));
  final CCombo combo=new CCombo(expressComp,SWT.BORDER);
  combo.setEditable(false);
  combo.setItems(remainDBTypeList.toArray(new String[remainDBTypeList.size()]));
  final RegularExpressionImpl finalRegExpress=regularExpress;
  String language=regularExpress.getExpression().getLanguage();
  if (language == null) {
    if (this.remainDBTypeList.contains(ALL_DATABASE_TYPE)) {
      combo.setText(ALL_DATABASE_TYPE);
    }
 else {
      combo.setText(remainDBTypeList.get(0));
    }
  }
 else {
    String supportLanguage=language.equalsIgnoreCase(SQL) ? ALL_DATABASE_TYPE : language;
    combo.setText(supportLanguage);
  }
  GridDataFactory.fillDefaults().span(2,1).grab(true,false).applyTo(combo);
  combo.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      String lang=combo.getText().equalsIgnoreCase(ALL_DATABASE_TYPE) ? SQL : combo.getText();
      finalRegExpress.getExpression().setLanguage(lang);
      setDirty(true);
    }
  }
);
  final Text patternText=new Text(expressComp,SWT.BORDER);
  patternText.setText(regularExpress.getExpression().getBody() == null ? PluginConstant.EMPTY_STRING : regularExpress.getExpression().getBody());
  GridDataFactory.fillDefaults().span(6,1).grab(true,false).applyTo(patternText);
  patternText.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      finalRegExpress.getExpression().setBody(patternText.getText());
      setDirty(true);
    }
  }
);
  Button delButton=new Button(expressComp,SWT.NONE);
  delButton.setImage(ImageLib.getImage(ImageLib.DELETE_ACTION));
  delButton.setToolTipText("String_Node_Str");
  GridDataFactory.fillDefaults().span(1,1).grab(true,false).applyTo(delButton);
  delButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      tempPatternComponents.remove(finalRegExpress);
      expressComp.dispose();
      patternDefinitionSectionComp.layout();
      form.reflow(true);
      setDirty(true);
    }
  }
);
  Button testPatternButton=new Button(expressComp,SWT.NONE);
  testPatternButton.setText("String_Node_Str");
  testPatternButton.setToolTipText("String_Node_Str");
  GridDataFactory.fillDefaults().span(1,1).grab(true,false).applyTo(testPatternButton);
  testPatternButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      PatternTestView patternTestView=(PatternTestView)CorePlugin.getDefault().findView(PatternTestView.ID);
      patternTestView.setPatternExpression(PatternMasterDetailsPage.this,pattern,finalRegExpress);
    }
  }
);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.FILL).grab(true,false).applyTo(expressComp);
}

Fixed version (ground truth):
private void creatNewExpressLine(RegularExpressionImpl regularExpress){
  final Composite expressComp=new Composite(componentsComp,SWT.NONE);
  expressComp.setLayout(new GridLayout(10,false));
  final CCombo combo=new CCombo(expressComp,SWT.BORDER);
  combo.setEditable(false);
  combo.setItems(remainDBTypeList.toArray(new String[remainDBTypeList.size()]));
  final RegularExpressionImpl finalRegExpress=regularExpress;
  String language=regularExpress.getExpression().getLanguage();
  if (language == null) {
    if (this.remainDBTypeList.contains(ALL_DATABASE_TYPE)) {
      combo.setText(ALL_DATABASE_TYPE);
    }
 else {
      combo.setText(remainDBTypeList.get(0));
    }
  }
 else {
    String supportLanguage=language.equalsIgnoreCase(SQL) ? ALL_DATABASE_TYPE : language;
    combo.setText(supportLanguage);
  }
  GridDataFactory.fillDefaults().span(2,1).grab(false,false).applyTo(combo);
  combo.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      String lang=combo.getText().equalsIgnoreCase(ALL_DATABASE_TYPE) ? SQL : combo.getText();
      finalRegExpress.getExpression().setLanguage(lang);
      setDirty(true);
    }
  }
);
  final Text patternText=new Text(expressComp,SWT.BORDER);
  patternText.setText(regularExpress.getExpression().getBody() == null ? PluginConstant.EMPTY_STRING : regularExpress.getExpression().getBody());
  GridDataFactory.fillDefaults().span(6,1).grab(true,false).applyTo(patternText);
  patternText.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      finalRegExpress.getExpression().setBody(patternText.getText());
      setDirty(true);
    }
  }
);
  Button delButton=new Button(expressComp,SWT.NONE);
  delButton.setImage(ImageLib.getImage(ImageLib.DELETE_ACTION));
  delButton.setToolTipText("String_Node_Str");
  GridDataFactory.fillDefaults().span(1,1).grab(false,false).applyTo(delButton);
  delButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      tempPatternComponents.remove(finalRegExpress);
      expressComp.dispose();
      patternDefinitionSectionComp.layout();
      form.reflow(true);
      setDirty(true);
    }
  }
);
  Button testPatternButton=new Button(expressComp,SWT.NONE);
  testPatternButton.setText("String_Node_Str");
  testPatternButton.setToolTipText("String_Node_Str");
  GridDataFactory.fillDefaults().span(1,1).grab(false,false).applyTo(testPatternButton);
  testPatternButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      PatternTestView patternTestView=(PatternTestView)CorePlugin.getDefault().findView(PatternTestView.ID);
      patternTestView.setPatternExpression(PatternMasterDetailsPage.this,pattern,finalRegExpress);
    }
  }
);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.FILL).grab(true,false).applyTo(expressComp);
}