Program: 60073
Project: 60073
Buggy source:
/** 
 * Checks if is float limit impl.
 * @return the boolean
 */
private Boolean isFloatLimitImpl(){
  Boolean fl=this.isFloatLimit;
  if (fl == null) {
    Object parent=this.getOriginalOrCurrentParent();
    if (!(parent instanceof RBlock)) {
      fl=Boolean.TRUE;
      this.isFloatLimit=Boolean.TRUE;
    }
    RBlock blockParent=(RBlock)parent;
    Object grandParent=blockParent.getOriginalOrCurrentParent();
    if (!(grandParent instanceof RBlockViewport)) {
      fl=Boolean.TRUE;
      this.isFloatLimit=Boolean.TRUE;
    }
    ModelNode node=this.modelNode;
    if (!(node instanceof HTMLElementImpl)) {
      fl=Boolean.TRUE;
      this.isFloatLimit=Boolean.TRUE;
    }
    HTMLElementImpl element=(HTMLElementImpl)node;
    int position=getPosition(element);
    if (position == RenderState.POSITION_ABSOLUTE || position == RenderState.POSITION_FIXED) {
      fl=Boolean.TRUE;
      this.isFloatLimit=Boolean.TRUE;
    }
    element.getCurrentStyle();
    RenderState rs=element.getRenderState();
    int floatValue=rs == null ? RenderState.FLOAT_NONE : rs.getFloat();
    if (floatValue != RenderState.FLOAT_NONE) {
      fl=Boolean.TRUE;
      this.isFloatLimit=Boolean.TRUE;
    }
    int overflowX=rs == null ? RenderState.OVERFLOW_NONE : rs.getOverflowX();
    int overflowY=rs == null ? RenderState.OVERFLOW_NONE : rs.getOverflowY();
    if (overflowX == RenderState.OVERFLOW_AUTO || overflowX == RenderState.OVERFLOW_SCROLL || overflowY == RenderState.OVERFLOW_AUTO || overflowY == RenderState.OVERFLOW_SCROLL) {
      fl=Boolean.TRUE;
      this.isFloatLimit=Boolean.TRUE;
    }
    fl=Boolean.TRUE;
    this.isFloatLimit=Boolean.TRUE;
  }
  return fl.booleanValue();
}

Fixed version (ground truth):
/** 
 * Checks if is float limit impl.
 * @return the boolean
 */
private Boolean isFloatLimitImpl(){
  Boolean fl=this.isFloatLimit;
  if (fl == null) {
    Object parent=this.getOriginalOrCurrentParent();
    if (!(parent instanceof RBlock)) {
      fl=Boolean.TRUE;
      this.isFloatLimit=Boolean.TRUE;
    }
    RBlock blockParent=(RBlock)parent;
    Object grandParent=blockParent.getOriginalOrCurrentParent();
    if (!(grandParent instanceof RBlockViewport)) {
      fl=Boolean.TRUE;
      this.isFloatLimit=Boolean.TRUE;
    }
    ModelNode node=this.modelNode;
    if (!(node instanceof HTMLElementImpl)) {
      fl=Boolean.TRUE;
      this.isFloatLimit=Boolean.TRUE;
    }
 else {
      HTMLElementImpl element=(HTMLElementImpl)node;
      int position=getPosition(element);
      if (position == RenderState.POSITION_ABSOLUTE || position == RenderState.POSITION_FIXED) {
        fl=Boolean.TRUE;
        this.isFloatLimit=Boolean.TRUE;
      }
      element.getCurrentStyle();
      RenderState rs=element.getRenderState();
      int floatValue=rs == null ? RenderState.FLOAT_NONE : rs.getFloat();
      if (floatValue != RenderState.FLOAT_NONE) {
        fl=Boolean.TRUE;
        this.isFloatLimit=Boolean.TRUE;
      }
      int overflowX=rs == null ? RenderState.OVERFLOW_NONE : rs.getOverflowX();
      int overflowY=rs == null ? RenderState.OVERFLOW_NONE : rs.getOverflowY();
      if (overflowX == RenderState.OVERFLOW_AUTO || overflowX == RenderState.OVERFLOW_SCROLL || overflowY == RenderState.OVERFLOW_AUTO || overflowY == RenderState.OVERFLOW_SCROLL) {
        fl=Boolean.TRUE;
        this.isFloatLimit=Boolean.TRUE;
      }
      fl=Boolean.TRUE;
      this.isFloatLimit=Boolean.TRUE;
    }
  }
  return fl.booleanValue();
}