Program: 56827
Project: 56827
Buggy source:
private void createSearchGroup(Composite composite){
  Group group=new Group(composite,SWT.SHADOW_ETCHED_IN);
  group.setLayout(new RowLayout(SWT.VERTICAL));
  group.setText("String_Node_Str");
  Composite row=new Composite(group,SWT.NONE);
  row.setLayout(new RowLayout());
  searchText=new Text(row,SWT.BORDER | SWT.SINGLE);
  searchText.setLayoutData(new RowData(550,20));
  searchText.addFocusListener(new FocusAdapter(){
    @Override public void focusGained(    FocusEvent e){
      e.display.asyncExec(new Runnable(){
        @Override public void run(){
          searchText.selectAll();
        }
      }
);
    }
  }
);
  final Button searchButton=new Button(row,SWT.PUSH);
  searchButton.setText("String_Node_Str");
  searchButton.setEnabled(false);
  final ControlDecoration dec=new ControlDecoration(searchText,SWT.TOP | SWT.LEFT);
  dec.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEC_FIELD_WARNING));
  dec.setShowOnlyOnFocus(true);
  dec.setDescriptionText("String_Node_Str");
  dec.hide();
  this.nothingFound=new ControlDecoration(searchText,SWT.TOP | SWT.LEFT);
  nothingFound.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEC_FIELD_ERROR));
  nothingFound.setShowOnlyOnFocus(false);
  nothingFound.setDescriptionText("String_Node_Str");
  nothingFound.hide();
  searchText.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      if (searchText.getText().length() >= 3) {
        dec.hide();
        searchButton.setEnabled(true);
      }
 else {
        dec.show();
        dec.showHoverText("String_Node_Str");
        searchButton.setEnabled(false);
      }
    }
  }
);
  searchButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      search(searchText.getText(),caseSensitive.getSelection(),regexSearch.getSelection());
    }
  }
);
  searchText.addKeyListener(new KeyAdapter(){
    @Override public void keyPressed(    KeyEvent event){
switch (event.keyCode) {
case SWT.CR:
{
          if (searchButton.isEnabled())           search(searchText.getText(),caseSensitive.getSelection(),regexSearch.getSelection());
          break;
        }
    }
  }
}
);
row=new Composite(group,SWT.NONE);
row.setLayout(new RowLayout());
caseSensitive=new Button(row,SWT.CHECK);
caseSensitive.setText("String_Node_Str");
regexSearch=new Button(row,SWT.CHECK);
regexSearch.setText("String_Node_Str");
}

Fixed version (ground truth):
private void createSearchGroup(Composite composite){
  Group group=new Group(composite,SWT.SHADOW_ETCHED_IN);
  group.setLayout(new RowLayout(SWT.VERTICAL));
  group.setText("String_Node_Str");
  Composite row=new Composite(group,SWT.NONE);
  row.setLayout(new RowLayout());
  searchText=new Text(row,SWT.BORDER | SWT.SINGLE);
  searchText.setLayoutData(new RowData(550,20));
  searchText.addFocusListener(new FocusAdapter(){
    @Override public void focusGained(    FocusEvent e){
      e.display.asyncExec(new Runnable(){
        @Override public void run(){
          searchText.selectAll();
        }
      }
);
    }
  }
);
  final Button searchButton=new Button(row,SWT.PUSH);
  searchButton.setText("String_Node_Str");
  searchButton.setEnabled(false);
  final ControlDecoration dec=new ControlDecoration(searchText,SWT.TOP | SWT.LEFT);
  dec.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEC_FIELD_WARNING));
  dec.setShowOnlyOnFocus(true);
  dec.setDescriptionText("String_Node_Str");
  dec.hide();
  this.nothingFound=new ControlDecoration(searchText,SWT.TOP | SWT.LEFT);
  nothingFound.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEC_FIELD_ERROR));
  nothingFound.setShowOnlyOnFocus(false);
  nothingFound.setDescriptionText("String_Node_Str");
  nothingFound.hide();
  searchText.addModifyListener(new ModifyListener(){
    @Override public void modifyText(    ModifyEvent e){
      if (searchText.getText().length() >= 3) {
        dec.hide();
        searchButton.setEnabled(true);
      }
 else {
        dec.show();
        dec.showHoverText("String_Node_Str");
        searchButton.setEnabled(false);
      }
    }
  }
);
  searchButton.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      search(searchText.getText(),caseSensitive.getSelection(),regexSearch.getSelection());
    }
  }
);
  searchText.addKeyListener(new KeyAdapter(){
    @Override public void keyPressed(    KeyEvent event){
switch (event.keyCode) {
case SWT.CR:
        if (searchButton.isEnabled())         search(searchText.getText(),caseSensitive.getSelection(),regexSearch.getSelection());
      break;
default :
    break;
}
}
}
);
row=new Composite(group,SWT.NONE);
row.setLayout(new RowLayout());
caseSensitive=new Button(row,SWT.CHECK);
caseSensitive.setText("String_Node_Str");
regexSearch=new Button(row,SWT.CHECK);
regexSearch.setText("String_Node_Str");
}