docs: @SuppressWarnings("unchecked")
      public void finish(final Convert convert, final Type type, final Object obj) {
          if (obj == null) {
              finish("null");
          } else if (obj instanceof CompletableFuture) {
              ((CompletableFuture) obj).whenComplete((v, e) -> {
                  if (e != null) {
                      context.getLogger().log(Level.WARNING, "Servlet occur, force to close channel. request = " + request + ", result is CompletableFuture", (Throwable) e);
                      finish(500, null);
                      return;
                  }
                  finish(convert, type, v);
              });
          } else if (obj instanceof CharSequence) {
              finish((String) obj.toString());
          } else if (obj instanceof byte[]) {
              finish((byte[]) obj);
          }