code: protected boolean installViewIfValidJoinRsp(final Promise<JoinRsp> join_promise, boolean block_for_rsp) {
          boolean success=false;
          JoinRsp rsp=null;
          try {
              if(join_promise.hasResult())
                  rsp=join_promise.getResult(1, true);
              else if(block_for_rsp)
                  rsp=join_promise.getResult(gms.join_timeout, true);
  
              return success=rsp != null && isJoinResponseValid(rsp) && installView(rsp.getView(), rsp.getDigest());
          }
          finally {
              if(success)
                  gms.sendViewAck(rsp.getView().getCreator());
          }
      }
docs: go through discovery and JOIN-REQ again in a next iteration