Program: 95526
Project: 95526
Buggy source:
/** 
 * Creates and configures the "Clear Filter" button
 * @param parent the parent composite
 */
private void createClearFilterButton(Composite parent){
  setClearButton(new Label(parent,SWT.NONE));
  getClearButton().setData(SwtToolkitConstants.WIDGET_NAME,"String_Node_Str");
  getClearButton().setLayoutData(new GridData(SWT.BEGINNING,SWT.CENTER,false,false));
  getClearButton().setImage(inactiveImage);
  getClearButton().setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
  getClearButton().setToolTipText(Messages.DataSetClearFilterButton);
  getClearButton().addMouseListener(new MouseAdapter(){
    private MouseMoveListener m_moveListener;
    @Override public void mouseDown(    MouseEvent e){
      getClearButton().setImage(pressedImage);
      m_moveListener=new MouseMoveListener(){
        private boolean m_isMouseInButton=true;
        @Override public void mouseMove(        MouseEvent e){
          boolean isMouseInButton=isMouseInButton(e);
          if (isMouseInButton != m_isMouseInButton) {
            m_isMouseInButton=isMouseInButton;
            getClearButton().setImage(isMouseInButton ? pressedImage : inactiveImage);
          }
        }
      }
;
      getClearButton().addMouseMoveListener(m_moveListener);
    }
    @Override public void mouseUp(    MouseEvent e){
      if (m_moveListener != null) {
        getClearButton().removeMouseMoveListener(m_moveListener);
        m_moveListener=null;
        boolean isMouseInButton=isMouseInButton(e);
        getClearButton().setImage(isMouseInButton ? activeImage : inactiveImage);
        if (isMouseInButton) {
          m_searchText.setText("String_Node_Str");
          m_searchText.setFocus();
        }
      }
    }
    private boolean isMouseInButton(    MouseEvent e){
      Point buttonSize=getClearButton().getSize();
      return 0 <= e.x && e.x < buttonSize.x && 0 <= e.y && e.y < buttonSize.y;
    }
  }
);
  getClearButton().addMouseTrackListener(new MouseTrackAdapter(){
    @Override public void mouseEnter(    MouseEvent e){
      getClearButton().setImage(activeImage);
    }
    @Override public void mouseExit(    MouseEvent e){
      getClearButton().setImage(inactiveImage);
    }
  }
);
  getClearButton().addDisposeListener(new DisposeListener(){
    @Override public void widgetDisposed(    DisposeEvent e){
      inactiveImage.dispose();
      activeImage.dispose();
      pressedImage.dispose();
    }
  }
);
}

Fixed version (ground truth):
/** 
 * Creates and configures the "Clear Filter" button
 * @param parent the parent composite
 */
private void createClearFilterButton(Composite parent){
  setClearButton(new Label(parent,SWT.NONE));
  getClearButton().setData(SwtToolkitConstants.WIDGET_NAME,"String_Node_Str");
  getClearButton().setLayoutData(new GridData(SWT.BEGINNING,SWT.CENTER,false,false));
  getClearButton().setImage(inactiveImage);
  getClearButton().setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
  getClearButton().setToolTipText(Messages.DataSetClearFilterButton);
  getClearButton().addMouseListener(new MouseAdapter(){
    private MouseMoveListener m_moveListener;
    @Override public void mouseDown(    MouseEvent e){
      getClearButton().setImage(pressedImage);
      m_moveListener=new MouseMoveListener(){
        private boolean m_isMouseInButton=true;
        @Override public void mouseMove(        MouseEvent e2){
          boolean isMouseInButton=isMouseInButton(e2);
          if (isMouseInButton != m_isMouseInButton) {
            m_isMouseInButton=isMouseInButton;
            getClearButton().setImage(isMouseInButton ? pressedImage : inactiveImage);
          }
        }
      }
;
      getClearButton().addMouseMoveListener(m_moveListener);
    }
    @Override public void mouseUp(    MouseEvent e){
      if (m_moveListener != null) {
        getClearButton().removeMouseMoveListener(m_moveListener);
        m_moveListener=null;
        boolean isMouseInButton=isMouseInButton(e);
        getClearButton().setImage(isMouseInButton ? activeImage : inactiveImage);
        if (isMouseInButton) {
          m_searchText.setText(StringConstants.EMPTY);
          m_searchText.setFocus();
        }
      }
    }
    private boolean isMouseInButton(    MouseEvent e){
      Point buttonSize=getClearButton().getSize();
      return 0 <= e.x && e.x < buttonSize.x && 0 <= e.y && e.y < buttonSize.y;
    }
  }
);
  getClearButton().addMouseTrackListener(new MouseTrackAdapter(){
    @Override public void mouseEnter(    MouseEvent e){
      getClearButton().setImage(activeImage);
    }
    @Override public void mouseExit(    MouseEvent e){
      getClearButton().setImage(inactiveImage);
    }
  }
);
}