@NotNull private Response sendBlockingStunRequest(Request request) { try { CompletableFuture<Response> responseFuture = new CompletableFuture<>(); stunStack.sendRequest( request, serverAddress, localAddress, blockingResponseCollector(responseFuture)); Response response = responseFuture.get(); if (response.isErrorResponse()) { logger.warn( "STUN error: {}", ((ErrorCodeAttribute) response.getAttribute(ERROR_CODE)).getReasonPhrase()); } return response; } catch (IOException | InterruptedException | ExecutionException e) { throw new RuntimeException(e); } }