private void handleEnrollInTransaction(Operation request) { String serviceSelfLink = this.service.getSelfLink(); if (Action.POST == request.getAction()) { ServiceDocument body = request.getBody(this.service.getStateType()); if (body.documentSelfLink == null) { body.documentSelfLink = UUID.randomUUID().toString(); request.setBody(body); } serviceSelfLink = UriUtils.buildUriPath(serviceSelfLink, body.documentSelfLink); } long servicePreviousVersion = this.service.getState(request) == null ? -1 : this.service.getState(request).documentVersion; Operation enrollRequest = SimpleTransactionService.TxUtils.buildEnrollRequest( this.service.getHost(), request.getTransactionId(), serviceSelfLink, request.getAction(), servicePreviousVersion) .setCompletion( (o, e) -> { if (e != null) { request.fail(e); return; } this.service .getOperationProcessingChain() .resumeProcessingRequest(request, this); }); this.service.sendRequest(enrollRequest); }