}
    public synchronized void sfStart() throws SmartFrogException, RemoteException {    super.sfStart();    // the last act is to inform the root process compound that the    // subprocess is now ready for action - only done if not the root    try {        if (!sfIsRoot()) {        ProcessCompound parent = sfLocateParent();        if (parent != null) {            parent.sfNotifySubprocessReady(sfProcessName);        }        }    } catch (RemoteException rex) {        throw new SmartFrogRuntimeException(MSG_FAILED_TO_CONTACT_PARENT,                        rex, this);    }    }