docs: private RuntimeException throwIfPossible(Throwable t) throws IOException, ChannelException
    {
      Preconditions.checkNotNull(t, "Throwable shoulnd't null");
  
      if (t instanceof ExecutionException) {
        if (t.getCause() != null) {
          return throwIfPossible(t.getCause());
        } else {
          return new RuntimeException(t);
        }
      }
  
      if (t instanceof IOException) {
        throw (IOException) t;
      }
  
      if (t instanceof ChannelException) {
        throw (ChannelException) t;
      }
  
      if (t instanceof InterruptedException) {
        Thread.currentThread().interrupt();
        throw new RuntimeException(t);
      }
  
      Throwables.propagateIfPossible(t);
      return new RuntimeException(t);
    }