Program: 152035
Project: 152035
Buggy source:
public void tick(float elapsed){
  _tickStamp=System.currentTimeMillis();
  _tickParticipants.apply(_tickOp.init(elapsed));
  if (!_pressedKeys.isEmpty()) {
    for (    KeyRecord key : _pressedKeys.values()) {
      key.maybeRepeat();
    }
  }
  boolean updateHover=false;
  while (!_invalidRoots.isEmpty()) {
    Component root=_invalidRoots.removeFirst();
    if (root.isAdded()) {
      root.validate();
      updateHover=true;
    }
  }
  if (updateHover) {
    updateHoverComponent(_mouseX,_mouseY);
  }
  _lastMoveTime+=elapsed;
  _lastTipTime+=elapsed;
  String tiptext;
  if (_hcomponent == null || _tipwin != null || (_lastMoveTime < getTooltipTimeout() && _lastTipTime > TIP_MODE_RESET) || (tiptext=_hcomponent.getTooltipText()) == null) {
    if (_tipwin != null) {
      _lastTipTime=0;
    }
    return;
  }
  Window hwin=_hcomponent.getWindow();
  Component tcomp=_hcomponent.createTooltipComponent(tiptext);
  if (hwin == null || tcomp == null) {
    return;
  }
  _tipwin=new Window(_ctx,new BorderLayout()){
    public boolean isOverlay(){
      return true;
    }
  }
;
  _tipwin.setLayer(Integer.MAX_VALUE / 2);
  _tipwin.setStyleConfig(_hcomponent.getTooltipWindowStyle());
  _tipwin.add(tcomp,BorderLayout.CENTER);
  addWindow(_tipwin);
  if (_tipwin == null) {
    return;
  }
  int width=getDisplayWidth();
  int height=getDisplayHeight();
  _tipwin.pack(_tipWidth == -1 ? width - 10 : _tipWidth,height - 10);
  int tx=0, ty=0;
  if (_hcomponent.isTooltipRelativeToMouse()) {
    tx=_mouseX - _tipwin.getWidth() / 2;
    ty=_mouseY + 10;
  }
 else {
    tx=_hcomponent.getAbsoluteX() + (_hcomponent.getWidth() - _tipwin.getWidth()) / 2;
    ty=_hcomponent.getAbsoluteY() + _hcomponent.getHeight() + 10;
  }
  tx=Math.max(5,Math.min(tx,width - _tipwin.getWidth() - 5));
  ty=Math.min(ty,height - _tipwin.getHeight() - 5);
  _tipwin.setLocation(tx,ty);
  _tipwin.validate();
}

Fixed version (ground truth):
public void tick(float elapsed){
  _tickStamp=System.currentTimeMillis();
  _tickParticipants.apply(_tickOp.init(elapsed));
  if (!_pressedKeys.isEmpty()) {
    for (    KeyRecord key : _pressedKeys.values()) {
      key.maybeRepeat();
    }
  }
  boolean updateHover=false;
  while (!_invalidRoots.isEmpty()) {
    Validateable root=_invalidRoots.removeFirst();
    if (root.isAdded()) {
      root.validate();
      updateHover=true;
    }
  }
  if (updateHover) {
    updateHoverComponent(_mouseX,_mouseY);
  }
  _lastMoveTime+=elapsed;
  _lastTipTime+=elapsed;
  String tiptext;
  if (_hcomponent == null || _tipwin != null || (_lastMoveTime < getTooltipTimeout() && _lastTipTime > TIP_MODE_RESET) || (tiptext=_hcomponent.getTooltipText()) == null) {
    if (_tipwin != null) {
      _lastTipTime=0;
    }
    return;
  }
  Window hwin=_hcomponent.getWindow();
  Component tcomp=_hcomponent.createTooltipComponent(tiptext);
  if (hwin == null || tcomp == null) {
    return;
  }
  _tipwin=new Window(_ctx,new BorderLayout()){
    public boolean isOverlay(){
      return true;
    }
  }
;
  _tipwin.setLayer(Integer.MAX_VALUE / 2);
  _tipwin.setStyleConfig(_hcomponent.getTooltipWindowStyle());
  _tipwin.add(tcomp,BorderLayout.CENTER);
  addWindow(_tipwin);
  if (_tipwin == null) {
    return;
  }
  int width=getDisplayWidth();
  int height=getDisplayHeight();
  _tipwin.pack(_tipWidth == -1 ? width - 10 : _tipWidth,height - 10);
  int tx=0, ty=0;
  if (_hcomponent.isTooltipRelativeToMouse()) {
    tx=_mouseX - _tipwin.getWidth() / 2;
    ty=_mouseY + 10;
  }
 else {
    tx=_hcomponent.getAbsoluteX() + (_hcomponent.getWidth() - _tipwin.getWidth()) / 2;
    ty=_hcomponent.getAbsoluteY() + _hcomponent.getHeight() + 10;
  }
  tx=Math.max(5,Math.min(tx,width - _tipwin.getWidth() - 5));
  ty=Math.min(ty,height - _tipwin.getHeight() - 5);
  _tipwin.setLocation(tx,ty);
  _tipwin.validate();
}