src/java/org/apache/cassandra/service/StorageService.java
/**
     * Handle node bootstrap
     *
     * @param endpoint bootstrapping node
     * @param pieces STATE_BOOTSTRAPPING,bootstrap token as string
     */
Handle node bootstrap
@param endpoint bootstrapping node
@param pieces STATE_BOOTSTRAPPING,bootstrap token as string
Handle node bootstrap @param endpoint bootstrapping node @param pieces STATE_BOOTSTRAPPING bootstrap token as string
private void handleStateBootstrap(InetAddress endpoint, String[] pieces)
    {
        assert pieces.length >= 2;
        Token token = getPartitioner().getTokenFactory().fromString(pieces[1]);
        if (logger_.isDebugEnabled())
            logger_.debug("Node " + endpoint + " state bootstrapping, token " + token);
        if (tokenMetadata_.isMember(endpoint))
        {
            if (!tokenMetadata_.isLeaving(endpoint))
                logger_.info("Node " + endpoint + " state jump to bootstrap");
            tokenMetadata_.removeEndpoint(endpoint);
        }
        tokenMetadata_.addBootstrapToken(token, endpoint);
        calculatePendingRanges();
    }
private void handleStateBootstrap ( InetAddress endpoint , String [ ] pieces ) { assert pieces . length >= 2 ; Token token = getPartitioner ( ) . getTokenFactory ( ) . fromString ( pieces [ 1 ] ) ; if ( logger_ . isDebugEnabled ( ) ) logger_ . debug ( "Node " + endpoint + " state bootstrapping, token " + token ) ; if ( tokenMetadata_ . isMember ( endpoint ) ) { if ( ! tokenMetadata_ . isLeaving ( endpoint ) ) logger_ . info ( "Node " + endpoint + " state jump to bootstrap" ) ; tokenMetadata_ . removeEndpoint ( endpoint ) ; } tokenMetadata_ . addBootstrapToken ( token , endpoint ) ; calculatePendingRanges ( ) ; }
Handle node bootstrap
 @param endpoint bootstrapping node
 @param pieces STATE_BOOTSTRAPPING,bootstrap token as string
Handle node bootstrap @param endpoint bootstrapping node @param pieces STATE_BOOTSTRAPPING bootstrap token as string
// if this node is present in token metadata, either we have missed intermediate states // or the node had crashed. Print warning if needed, clear obsolete stuff and // continue. // If isLeaving is false, we have missed both LEAVING and LEFT. However, if // isLeaving is true, we have only missed LEFT. Waiting time between completing // leave operation and rebootstrapping is relatively short, so the latter is quite // common (not enough time for gossip to spread). Therefore we report only the // former in the log.