volatile & NodeDataListener