@Override
 public void sendRequest(
     final ClientRequest request, final ClientCallback<ClientExchange> clientCallback) {
   if (anyAreSet(state, UPGRADE_REQUESTED | UPGRADED | CLOSE_REQ | CLOSED)) {
     throw UndertowClientMessages.MESSAGES.invalidConnectionState();
   }
   final HttpClientExchange httpClientExchange =
       new HttpClientExchange(clientCallback, request, this);
   if (currentRequest == null) {
     initiateRequest(httpClientExchange);
   } else {
     pendingQueue.add(httpClientExchange);
   }
 }