private boolean replaceDeadSuccessor() {
        // In panic now, checking all successor in the list first
        for (IChordNode node : successorList) {
            try {
                // If there is one alive, replace the successor to this and notify the successor
                if (node.isActive()) {
                    this.setSuccessor(node);
                    getSuccessor().notify(this);
                    return true;
                }
            } catch (RemoteException ex) {
                // Nothing bad happened, just check if successor is alive
            }
        }

        // there is no live successor in the successor list
        return false;
    }