private void changeToDemandState(State oldState) { if (changeState(oldState, State.DEMAND)) { // Protect from infinite recursion in Undertow, where we can't check if data // is available, so all we can do is to try to read. // Generally, no need to check if we just came out of readAndPublish()... if (!oldState.equals(State.READING)) { checkOnDataAvailable(); } } }
@Override public ServerHttpRequest build() { return new MutatedServerHttpRequest(getUriToUse(), this.contextPath, this.httpHeaders, this.httpMethodValue, this.cookies, this.sslInfo, this.body, this.originalRequest); }
@Override public final Mono<Void> writeAndFlushWith(Publisher<? extends Publisher<? extends DataBuffer>> body) { return new ChannelSendOperator<>(body, writePublisher -> doCommit(() -> writeAndFlushWithInternal(writePublisher))) .doOnError(t -> removeContentLength()); }
@Override public HttpHeaders getHeaders() { return getDelegate().getHeaders(); }
@Override public HttpHeaders getHeaders() { return getDelegate().getHeaders(); }
@Override public Mono<Void> writeWith(Publisher<? extends DataBuffer> body) { return getDelegate().writeWith(body); }
@Override public Mono<Void> setComplete() { return getDelegate().setComplete(); }
@Override public DataBufferFactory bufferFactory() { return getDelegate().bufferFactory(); }
@Override public final Mono<Void> writeWith(Publisher<? extends DataBuffer> body) { return new ChannelSendOperator<>(body, writePublisher -> doCommit(() -> writeWithInternal(writePublisher))) .doOnError(t -> removeContentLength()); }
@Override public Flux<DataBuffer> getBody() { return getDelegate().getBody(); }
private void changeStateToComplete(State oldState) { if (changeState(oldState, State.COMPLETED)) { discardCurrentData(); writingComplete(); this.resultPublisher.publishComplete(); } else { this.state.get().onComplete(this); } }
void handleError(Throwable ex) { ResponseBodyFlushProcessor flushProcessor = bodyFlushProcessor; if (flushProcessor != null) { flushProcessor.cancel(); flushProcessor.onError(ex); } ResponseBodyProcessor processor = bodyProcessor; if (processor != null) { processor.cancel(); processor.onError(ex); } }
@Override public Mono<Void> writeAndFlushWith(Publisher<? extends Publisher<? extends DataBuffer>> body) { return getDelegate().writeAndFlushWith(body); }
@Override protected ServletServerHttpResponse createResponse(HttpServletResponse response, AsyncContext context, ServletServerHttpRequest request) throws IOException { return new JettyServerHttpResponse( response, context, getDataBufferFactory(), getBufferSize(), request); }
@Override protected ServletServerHttpResponse createResponse(HttpServletResponse response, AsyncContext asyncContext, ServletServerHttpRequest request) throws IOException { return new TomcatServerHttpResponse( response, asyncContext, getDataBufferFactory(), getBufferSize(), request); }
public UndertowServerHttpRequest(HttpServerExchange exchange, DataBufferFactory bufferFactory) throws URISyntaxException { super(initUri(exchange), "", initHeaders(exchange)); this.exchange = exchange; this.body = new RequestBodyPublisher(exchange, bufferFactory); this.body.registerListeners(exchange); }
@Override public void addCookie(ResponseCookie cookie) { getDelegate().addCookie(cookie); }
@Override public String getId() { return getDelegate().getId(); }
@Override public void onWritePossible() throws IOException { ResponseBodyProcessor processor = bodyProcessor; if (processor != null) { processor.onWritePossible(); } else { ResponseBodyFlushProcessor flushProcessor = bodyFlushProcessor; if (flushProcessor != null) { flushProcessor.onFlushPossible(); } } }