@Override public final void onSubscribe(Subscription subscription) { this.subscription = subscription; this.emitter.onTimeout(() -> { if (logger.isTraceEnabled()) { logger.trace("Connection timeout for " + this.emitter); } terminate(); this.emitter.complete(); }); this.emitter.onError(this.emitter::completeWithError); subscription.request(1); }
@Override public final void onSubscribe(Subscription subscription) { this.subscription = subscription; this.emitter.onTimeout(() -> { if (logger.isTraceEnabled()) { logger.trace("Connection timeout for " + this.emitter); } terminate(); this.emitter.complete(); }); this.emitter.onError(this.emitter::completeWithError); subscription.request(1); }
@SuppressWarnings("unchecked") @Test public void responseBodyEmitterWithErrorValue() throws Exception { AsyncWebRequest asyncWebRequest = mock(AsyncWebRequest.class); WebAsyncUtils.getAsyncManager(this.request).setAsyncWebRequest(asyncWebRequest); ResponseBodyEmitter emitter = new ResponseBodyEmitter(19000L); emitter.onError(mock(Consumer.class)); emitter.onCompletion(mock(Runnable.class)); MethodParameter type = on(TestController.class).resolveReturnType(ResponseBodyEmitter.class); this.handler.handleReturnValue(emitter, type, this.mavContainer, this.webRequest); verify(asyncWebRequest).addErrorHandler(any(Consumer.class)); verify(asyncWebRequest, times(2)).addCompletionHandler(any(Runnable.class)); verify(asyncWebRequest).startAsync(); }
@Override public final void onSubscribe(Subscription subscription) { this.subscription = subscription; this.emitter.onTimeout(() -> { if (logger.isTraceEnabled()) { logger.trace("Connection timeout for " + this.emitter); } terminate(); this.emitter.complete(); }); this.emitter.onError(this.emitter::completeWithError); subscription.request(1); }