private void markNodeUnstableIfDownEdgeDuringInit(final NodeInfo node,
                                                      final NodeState currentState,
                                                      final NodeState reportedState,
                                                      final NodeListener nodeListener,
                                                      final long timeNow) {
        if (currentState.getState().equals(INITIALIZING)
                && reportedState.getState().oneOf("ds")
                && isNotControlledShutdown(reportedState))
        {
            eventLog.add(NodeEvent.forBaseline(node, String.format("Stop or crash during initialization. " +
                    "Premature crash count is now %d.", node.getPrematureCrashCount() + 1),
                    NodeEvent.Type.CURRENT, timeNow), isMaster);
            handlePrematureCrash(node, nodeListener);
        }
    }
Modify a node's cross-state information in the cluster based on a newly arrived reported state.

@param  node the node we are computing the state of
@param  currentState the current state of the node
@param  reportedState the new state reported by (or, in the case of down - inferred from) the node
@param  nodeListener this listener is notified for some of the system state changes that this will return
clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateChangeHandler.java