Program: 75774
Project: 75774
Buggy source:
/** 
 * Return true if the receiver containing this boundary detector is contained on the outside of a boundary port. A boundary port is an opaque port that is contained by a composite actor. If the containing receiver is contained on the outside of a boundary port then return true; otherwise return false. This method is not synchronized so the caller should be.
 * @return True if the containing receiver is contained on theoutside of a boundary port; return false otherwise.
 */
public boolean isOutsideBoundary(){
  if (_outsideBoundaryCacheIsOn) {
    return _isInsideBoundaryValue;
  }
 else {
    IOPort innerPort=(IOPort)_rcvr.getContainer();
    if (innerPort == null) {
      _outsideBoundaryCacheIsOn=false;
      _isOutsideBoundaryValue=false;
      return _isOutsideBoundaryValue;
    }
    ComponentEntity innerEntity=(ComponentEntity)innerPort.getContainer();
    if (!innerEntity.isAtomic() && innerPort.isOpaque()) {
      if (innerPort.isOutput() && !innerPort.isInput()) {
        _isOutsideBoundaryValue=false;
      }
 else       if (!innerPort.isOutput() && innerPort.isInput()) {
        _isOutsideBoundaryValue=true;
      }
 else       if (!innerPort.isOutput() && !innerPort.isInput()) {
        _isOutsideBoundaryValue=false;
      }
 else {
        throw new IllegalArgumentException("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str");
      }
      _outsideBoundaryCacheIsOn=true;
      return _isOutsideBoundaryValue;
    }
    _outsideBoundaryCacheIsOn=true;
    _isOutsideBoundaryValue=false;
    return _isOutsideBoundaryValue;
  }
}

Fixed version (ground truth):
/** 
 * Return true if the receiver containing this boundary detector is contained on the outside of a boundary port. A boundary port is an opaque port that is contained by a composite actor. If the containing receiver is contained on the outside of a boundary port then return true; otherwise return false. This method is not synchronized so the caller should be.
 * @return True if the containing receiver is contained on theoutside of a boundary port; return false otherwise.
 */
public boolean isOutsideBoundary(){
  if (_outsideBoundaryCacheIsOn) {
    return _isInsideBoundaryValue;
  }
 else {
    IOPort innerPort=(IOPort)_receiver.getContainer();
    if (innerPort == null) {
      _outsideBoundaryCacheIsOn=false;
      _isOutsideBoundaryValue=false;
      return _isOutsideBoundaryValue;
    }
    ComponentEntity innerEntity=(ComponentEntity)innerPort.getContainer();
    if (!innerEntity.isAtomic() && innerPort.isOpaque()) {
      if (innerPort.isOutput() && !innerPort.isInput()) {
        _isOutsideBoundaryValue=false;
      }
 else       if (!innerPort.isOutput() && innerPort.isInput()) {
        _isOutsideBoundaryValue=true;
      }
 else       if (!innerPort.isOutput() && !innerPort.isInput()) {
        _isOutsideBoundaryValue=false;
      }
 else {
        throw new IllegalArgumentException("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str");
      }
      _outsideBoundaryCacheIsOn=true;
      return _isOutsideBoundaryValue;
    }
    _outsideBoundaryCacheIsOn=true;
    _isOutsideBoundaryValue=false;
    return _isOutsideBoundaryValue;
  }
}