Program: 119239
Project: 119239
Buggy source:
/** 
 * qiang.zhang Comment method "createDirectoryComponent".
 * @param key
 * @param defaultContext
 */
private void createDirectoryComponent(final EConnectionParameterName key,IContext defaultContext){
  GridLayout gridLayout;
  GridData gridData;
  Composite hostComposite=new Composite(mainComposite,SWT.NONE);
  gridLayout=new GridLayout();
  gridLayout.verticalSpacing=2;
  gridLayout.marginTop=5;
  gridLayout.marginBottom=2;
  gridLayout.marginHeight=0;
  gridLayout.marginWidth=0;
  gridLayout.marginLeft=0;
  gridLayout.marginRight=0;
  gridData=new GridData(GridData.FILL_HORIZONTAL);
  hostComposite.setLayout(gridLayout);
  hostComposite.setLayoutData(gridData);
  Label hostLabel=new Label(hostComposite,SWT.NONE);
  hostLabel.setText(key.getDisplayName() + "String_Node_Str");
  GridDataFactory.swtDefaults().hint(LABEL_DEFAULT_X,DEFAULT_HEIGHT).applyTo(hostLabel);
  Composite fileComposite=new Composite(hostComposite,SWT.NONE);
  gridLayout=new GridLayout();
  gridLayout.numColumns=2;
  gridLayout.verticalSpacing=0;
  gridLayout.marginTop=0;
  gridLayout.marginBottom=0;
  gridLayout.marginHeight=0;
  gridLayout.marginWidth=0;
  gridLayout.marginLeft=0;
  gridLayout.marginRight=0;
  gridData=new GridData(GridData.FILL_HORIZONTAL);
  fileComposite.setLayout(gridLayout);
  fileComposite.setLayoutData(gridData);
  final Text host=new Text(fileComposite,SWT.BORDER);
  host.setText(pvValues.get(key));
  if (host.getText().trim().length() == 0) {
    host.setBackground(ColorConstants.red);
    host.redraw();
  }
  gridData=new GridData(GridData.FILL_HORIZONTAL);
  host.setLayoutData(gridData);
  Button button=new Button(fileComposite,SWT.PUSH);
  button.setText("String_Node_Str");
  button.addSelectionListener(new SelectionListener(){
    public void widgetDefaultSelected(    SelectionEvent e){
    }
    public void widgetSelected(    SelectionEvent e){
      DirectoryDialog dialog=new DirectoryDialog(mainComposite.getShell(),SWT.NONE);
      String path=PathExtractor.extractPath(host.getText());
      dialog.setFilterPath(PathUtils.getOSPath(path));
      String file=dialog.open();
      if (file != null) {
        if (!file.equals("String_Node_Str")) {
          host.setText(PathUtils.getPortablePath(file));
        }
      }
    }
  }
);
  final Text hostText=new Text(hostComposite,SWT.NONE);
  hostText.setEditable(false);
  gridData=new GridData(GridData.FILL_HORIZONTAL);
  hostText.setLayoutData(gridData);
  hostText.setText(CONTEXT_WITH + ContextParameterUtils.parseScriptContextCode(host.getText(),defaultContext));
  host.setData(TEXT_CONTROL,hostText);
  host.setData(key);
  allParamText.add(host);
  host.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      if (isRequriedValue(key.getName())) {
        if (host.getText().trim().length() == 0) {
          host.setBackground(ColorConstants.red);
          host.redraw();
        }
 else {
          host.setBackground(ColorConstants.white);
          host.redraw();
        }
        resetValues(host,hostText);
      }
    }
  }
);
}

Fixed version (ground truth):
/** 
 * qiang.zhang Comment method "createDirectoryComponent".
 * @param key
 * @param defaultContext
 */
private void createDirectoryComponent(final EConnectionParameterName key,IContext defaultContext){
  GridLayout gridLayout;
  GridData gridData;
  Composite hostComposite=new Composite(mainComposite,SWT.NONE);
  gridLayout=new GridLayout();
  gridLayout.verticalSpacing=2;
  gridLayout.marginTop=5;
  gridLayout.marginBottom=2;
  gridLayout.marginHeight=0;
  gridLayout.marginWidth=0;
  gridLayout.marginLeft=0;
  gridLayout.marginRight=0;
  gridData=new GridData(GridData.FILL_HORIZONTAL);
  hostComposite.setLayout(gridLayout);
  hostComposite.setLayoutData(gridData);
  Label hostLabel=new Label(hostComposite,SWT.NONE);
  hostLabel.setText(key.getDisplayName() + "String_Node_Str");
  GridData data=new GridData(GridData.FILL_HORIZONTAL);
  hostLabel.setLayoutData(data);
  Composite fileComposite=new Composite(hostComposite,SWT.NONE);
  gridLayout=new GridLayout();
  gridLayout.numColumns=2;
  gridLayout.verticalSpacing=0;
  gridLayout.marginTop=0;
  gridLayout.marginBottom=0;
  gridLayout.marginHeight=0;
  gridLayout.marginWidth=0;
  gridLayout.marginLeft=0;
  gridLayout.marginRight=0;
  gridData=new GridData(GridData.FILL_HORIZONTAL);
  fileComposite.setLayout(gridLayout);
  fileComposite.setLayoutData(gridData);
  final Text host=new Text(fileComposite,SWT.BORDER);
  host.setText(pvValues.get(key));
  if (host.getText().trim().length() == 0) {
    host.setBackground(ColorConstants.red);
    host.redraw();
  }
  gridData=new GridData(GridData.FILL_HORIZONTAL);
  host.setLayoutData(gridData);
  Button button=new Button(fileComposite,SWT.PUSH);
  button.setText("String_Node_Str");
  button.addSelectionListener(new SelectionListener(){
    @Override public void widgetDefaultSelected(    SelectionEvent e){
    }
    @Override public void widgetSelected(    SelectionEvent e){
      DirectoryDialog dialog=new DirectoryDialog(mainComposite.getShell(),SWT.NONE);
      String path=PathExtractor.extractPath(host.getText());
      dialog.setFilterPath(PathUtils.getOSPath(path));
      String file=dialog.open();
      if (file != null) {
        if (!file.equals("String_Node_Str")) {
          host.setText(PathUtils.getPortablePath(file));
        }
      }
    }
  }
);
  final Text hostText=new Text(hostComposite,SWT.NONE);
  hostText.setEditable(false);
  gridData=new GridData(GridData.FILL_HORIZONTAL);
  hostText.setLayoutData(gridData);
  hostText.setText(CONTEXT_WITH + ContextParameterUtils.parseScriptContextCode(host.getText(),defaultContext));
  host.setData(TEXT_CONTROL,hostText);
  host.setData(key);
  allParamText.add(host);
  host.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      if (isRequriedValue(key.getName())) {
        if (host.getText().trim().length() == 0) {
          host.setBackground(ColorConstants.red);
          host.redraw();
        }
 else {
          host.setBackground(ColorConstants.white);
          host.redraw();
        }
        resetValues(host,hostText);
      }
    }
  }
);
}