Program: 76411
Project: 76411
Buggy source:
synchronized void _zoomBox(int x,int y){
  Graphics graphics=getGraphics();
  if (y > _lry)   y=_lry;
  if (y < _uly)   y=_uly;
  if (x > _lrx)   x=_lrx;
  if (x < _ulx)   x=_ulx;
  if ((_zoomx != -1 || _zoomy != -1)) {
    if (_zoomin == false && _zoomout == false) {
      if (y < _zoomy) {
        _zoomout=true;
        graphics.drawRect(_zoomx - 15,_zoomy - 15,30,30);
      }
 else       if (y > _zoomy) {
        _zoomin=true;
      }
    }
    if (_zoomin == true) {
      graphics.setXORMode(_background);
      if ((_zoomxn != -1 || _zoomyn != -1) && (_drawn == true)) {
        int minx=Math.min(_zoomx,_zoomxn);
        int maxx=Math.max(_zoomx,_zoomxn);
        int miny=Math.min(_zoomy,_zoomyn);
        int maxy=Math.max(_zoomy,_zoomyn);
        graphics.drawRect(minx,miny,maxx - minx,maxy - miny);
      }
      if (y > _zoomy) {
        _zoomxn=x;
        _zoomyn=y;
        int minx=Math.min(_zoomx,_zoomxn);
        int maxx=Math.max(_zoomx,_zoomxn);
        int miny=Math.min(_zoomy,_zoomyn);
        int maxy=Math.max(_zoomy,_zoomyn);
        graphics.drawRect(minx,miny,maxx - minx,maxy - miny);
        graphics.setPaintMode();
        _drawn=true;
        return;
      }
 else       _drawn=false;
    }
 else     if (_zoomout == true) {
      graphics.setXORMode(_background);
      if ((_zoomxn != -1 || _zoomyn != -1) && (_drawn == true)) {
        int x_diff=Math.abs(_zoomx - _zoomxn);
        int y_diff=Math.abs(_zoomy - _zoomyn);
        graphics.drawRect(_zoomx - 15 - x_diff,_zoomy - 15 - y_diff,30 + x_diff * 2,30 + y_diff * 2);
      }
      if (y < _zoomy) {
        _zoomxn=x;
        _zoomyn=y;
        int x_diff=Math.abs(_zoomx - _zoomxn);
        int y_diff=Math.abs(_zoomy - _zoomyn);
        graphics.drawRect(_zoomx - 15 - x_diff,_zoomy - 15 - y_diff,30 + x_diff * 2,30 + y_diff * 2);
        graphics.setPaintMode();
        _drawn=true;
        return;
      }
 else       _drawn=false;
    }
  }
  graphics.setPaintMode();
}

Fixed version (ground truth):
synchronized void _zoomBox(int x,int y){
  Graphics graphics=getGraphics();
  if (y > _lry)   y=_lry;
  if (y < _uly)   y=_uly;
  if (x > _lrx)   x=_lrx;
  if (x < _ulx)   x=_ulx;
  if ((_zoomx != -1 || _zoomy != -1)) {
    if (_zoomin == false && _zoomout == false) {
      if (y < _zoomy) {
        _zoomout=true;
        graphics.setXORMode(_boxColor);
        graphics.drawRect(_zoomx - 15,_zoomy - 15,30,30);
      }
 else       if (y > _zoomy) {
        _zoomin=true;
      }
    }
    if (_zoomin == true) {
      if ((_zoomxn != -1 || _zoomyn != -1) && (_drawn == true)) {
        int minx=Math.min(_zoomx,_zoomxn);
        int maxx=Math.max(_zoomx,_zoomxn);
        int miny=Math.min(_zoomy,_zoomyn);
        int maxy=Math.max(_zoomy,_zoomyn);
        graphics.setXORMode(_boxColor);
        graphics.drawRect(minx,miny,maxx - minx,maxy - miny);
      }
      if (y > _zoomy) {
        _zoomxn=x;
        _zoomyn=y;
        int minx=Math.min(_zoomx,_zoomxn);
        int maxx=Math.max(_zoomx,_zoomxn);
        int miny=Math.min(_zoomy,_zoomyn);
        int maxy=Math.max(_zoomy,_zoomyn);
        graphics.setXORMode(_boxColor);
        graphics.drawRect(minx,miny,maxx - minx,maxy - miny);
        _drawn=true;
        return;
      }
 else       _drawn=false;
    }
 else     if (_zoomout == true) {
      if ((_zoomxn != -1 || _zoomyn != -1) && (_drawn == true)) {
        int x_diff=Math.abs(_zoomx - _zoomxn);
        int y_diff=Math.abs(_zoomy - _zoomyn);
        graphics.setXORMode(_boxColor);
        graphics.drawRect(_zoomx - 15 - x_diff,_zoomy - 15 - y_diff,30 + x_diff * 2,30 + y_diff * 2);
      }
      if (y < _zoomy) {
        _zoomxn=x;
        _zoomyn=y;
        int x_diff=Math.abs(_zoomx - _zoomxn);
        int y_diff=Math.abs(_zoomy - _zoomyn);
        graphics.setXORMode(_boxColor);
        graphics.drawRect(_zoomx - 15 - x_diff,_zoomy - 15 - y_diff,30 + x_diff * 2,30 + y_diff * 2);
        _drawn=true;
        return;
      }
 else       _drawn=false;
    }
  }
  graphics.setPaintMode();
}