if ((source == null) || (sfParent == null)) { return;
if (sfIsTerminated && !source.equals(sfParent)) { throw new SmartFrogLivenessException("Component Terminated");
    public void sfPing(Object source) throws SmartFrogLivenessException, RemoteException {        if (sfIsTerminated) {            throw new SmartFrogLivenessException("Component Terminated");        }        if ((source == null) || (sfParent == null)) {            return;        }        if (source.equals(sfParent)) {            sfLivenessCount = sfLivenessFactor;        } else if ((sfLivenessSender != null) &&                source.equals(sfLivenessSender) && (sfLivenessCount-- <= 0)) { // ptm: must decrement *AFTER* test            sfLivenessFailure(this, sfParent, null);        }    }