Program: 139053
Project: 139053
Buggy source:
private void createNewLineWithJavaUDI(){
  EList<TaggedValue> tvs=definition.getTaggedValue();
  String classNameStr=null;
  String jarPathStr="String_Node_Str";
  for (  TaggedValue tv : tvs) {
    if (tv.getTag().equals(PluginConstant.CLASS_NAME_TEXT)) {
      classNameStr=tv.getValue();
      continue;
    }
    if (tv.getTag().equals(PluginConstant.JAR_FILE_PATH)) {
      jarPathStr=tv.getValue();
    }
  }
  if (classNameStr == null) {
    return;
  }
  final Composite lineComp=new Composite(expressionComp,SWT.NONE);
  lineComp.setLayout(new GridLayout(2,false));
  final CCombo combo=new CCombo(lineComp,SWT.BORDER);
  combo.setLayoutData(new GridData());
  ((GridData)combo.getLayoutData()).widthHint=150;
  combo.setEditable(false);
  combo.setItems(allDBTypeList.toArray(new String[allDBTypeList.size()]));
  combo.setText(PatternLanguageType.JAVA.getName());
  combo.addSelectionListener(new LangCombSelectionListener());
  tempExpressionMap.put(combo,BooleanExpressionHelper.createExpression(combo.getText(),null));
  Composite detailComp=new Composite(combo.getParent(),SWT.NONE);
  widgetMap.put(combo,detailComp);
  detailComp.setLayout(new GridLayout(4,false));
  Text classNameText=new Text(detailComp,SWT.BORDER);
  classNameText.setLayoutData(new GridData(GridData.FILL_BOTH));
  ((GridData)classNameText.getLayoutData()).widthHint=250;
  classNameText.setText(classNameStr);
  classNameText.addModifyListener(new NeedToSetDirtyListener());
  final Text jarPathText=new Text(detailComp,SWT.BORDER);
  jarPathText.setLayoutData(new GridData(GridData.FILL_BOTH));
  ((GridData)jarPathText.getLayoutData()).widthHint=350;
  jarPathText.setText(jarPathStr);
  jarPathText.addModifyListener(new NeedToSetDirtyListener());
  Button button=new Button(detailComp,SWT.PUSH);
  button.setText("String_Node_Str");
  button.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      FileDialog dialog=new FileDialog(combo.getParent().getShell(),SWT.NONE);
      dialog.setFilterExtensions(new String[]{"String_Node_Str"});
      String path=dialog.open();
      if (path != null) {
        jarPathText.setText(path);
      }
    }
  }
);
  combo.setData(PluginConstant.CLASS_NAME_TEXT,classNameText);
  combo.setData(PluginConstant.JAR_FILE_PATH,jarPathText);
  createExpressionDelButton(detailComp,combo);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.FILL).grab(true,false).applyTo(detailComp);
}

Fixed version (ground truth):
private void createNewLineWithJavaUDI(){
  EList<TaggedValue> tvs=definition.getTaggedValue();
  String classNameStr=null;
  String jarPathStr="String_Node_Str";
  for (  TaggedValue tv : tvs) {
    if (tv.getTag().equals(PluginConstant.CLASS_NAME_TEXT)) {
      classNameStr=tv.getValue();
      continue;
    }
    if (tv.getTag().equals(PluginConstant.JAR_FILE_PATH)) {
      jarPathStr=tv.getValue();
    }
  }
  if (classNameStr == null) {
    return;
  }
  final Composite lineComp=new Composite(expressionComp,SWT.NONE);
  lineComp.setLayout(new GridLayout(2,false));
  final CCombo combo=new CCombo(lineComp,SWT.BORDER);
  combo.setLayoutData(new GridData());
  ((GridData)combo.getLayoutData()).widthHint=150;
  combo.setEditable(false);
  combo.setItems(allDBTypeList.toArray(new String[allDBTypeList.size()]));
  combo.setText(PatternLanguageType.JAVA.getName());
  combo.addSelectionListener(new LangCombSelectionListener());
  tempExpressionMap.put(combo,BooleanExpressionHelper.createExpression(combo.getText(),null));
  final Composite detailComp=new Composite(combo.getParent(),SWT.NONE);
  widgetMap.put(combo,detailComp);
  detailComp.setLayout(new GridLayout(4,false));
  final Text classNameText=new Text(detailComp,SWT.BORDER);
  classNameText.setLayoutData(new GridData(GridData.FILL_BOTH));
  ((GridData)classNameText.getLayoutData()).widthHint=250;
  classNameText.setText(classNameStr);
  classNameText.addModifyListener(new NeedToSetDirtyListener());
  final Text jarPathText=new Text(detailComp,SWT.BORDER);
  jarPathText.setLayoutData(new GridData(GridData.FILL_BOTH));
  ((GridData)jarPathText.getLayoutData()).widthHint=350;
  jarPathText.setText(jarPathStr);
  jarPathText.addModifyListener(new NeedToSetDirtyListener());
  Button button=new Button(detailComp,SWT.PUSH);
  button.setText("String_Node_Str");
  button.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      FileDialog dialog=new FileDialog(combo.getParent().getShell(),SWT.NONE);
      dialog.setFilterExtensions(new String[]{"String_Node_Str"});
      String path=dialog.open();
      if (path != null) {
        jarPathText.setText(path);
        validateJavaUDI(detailComp,classNameText,jarPathText);
      }
    }
  }
);
  classNameText.addFocusListener(new FocusListener(){
    public void focusGained(    FocusEvent e){
    }
    public void focusLost(    FocusEvent e){
      validateJavaUDI(detailComp,classNameText,jarPathText);
    }
  }
);
  combo.setData(PluginConstant.CLASS_NAME_TEXT,classNameText);
  combo.setData(PluginConstant.JAR_FILE_PATH,jarPathText);
  createExpressionDelButton(detailComp,combo);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.FILL).grab(true,false).applyTo(detailComp);
}