private void recursiveStartStream()

in src/backend/transcriber/src/main/java/com/amazonaws/transcribestreaming/retryclient/TranscribeStreamingRetryClient.java [143:171]


    private void recursiveStartStream(final StartStreamTranscriptionRequest request,
                                      final Publisher<AudioStream> publisher,
                                      final StreamTranscriptionBehavior responseHandler,
                                      final CompletableFuture<Void> finalFuture,
                                      final int retryAttempt) {
        CompletableFuture<Void> result = client.startStreamTranscription(request, publisher,
                                                                         getResponseHandler(responseHandler));
        result.whenComplete((r, e) -> {
            if (e != null) {

                if (retryAttempt <= maxRetries && isExceptionRetriable(e)) {
                    logger.error("Retry attempt:" + (retryAttempt + 1) );

                    try {
                        Thread.sleep(sleepTime);
                    } catch (InterruptedException e1) {
                        e1.printStackTrace();
                    }
                    recursiveStartStream(request, publisher, responseHandler, finalFuture, retryAttempt + 1);
                } else {
                    responseHandler.onError(e);
                    finalFuture.completeExceptionally(e);
                }
            } else {
                responseHandler.onComplete();
                finalFuture.complete(null);
            }
        });
    }