java.lang.IllegalStateException: RECEIVED

Spring JIRA | Jose Antonio Iñigo | 6 months ago
tip
Click on the to mark the solution that helps you, Samebug will learn from it.
As a community member, you’ll be rewarded for you help.
  1. 0

    Given this controller: {code:java} package com.codependent.spring5.playground.reactive.web; import java.time.Duration; import org.reactivestreams.Publisher; import org.reactivestreams.Subscriber; import org.springframework.http.codec.SseEvent; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Flux; @RestController public class StringsRestController { @GetMapping("/singleStrings") public Publisher<String> getSingleString(){ return new Publisher<String>() { @Override public void subscribe(Subscriber<? super String> s) { s.onNext("message"+Math.random()); s.onComplete(); } }; } @GetMapping(value="/strings", produces="text/event-stream") public Publisher<String> getStrings(){ return new Publisher<String>() { @Override public void subscribe(Subscriber<? super String> s) { int i = 0; while(++i <= 5){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } s.onNext("message"+Math.random()); } s.onComplete(); } }; } } {code} Calling {{/singleStrings}} return correctly a generated String. However when hitting the second endpoint {{/strings}}, that calls s.onNext() multiple times the following exception is thrown: {code:java} 2016-08-24 09:25:37.185 DEBUG 9780 --- [nio-8080-exec-1] o.s.web.reactive.DispatcherHandler : Processing GET request for [http://localhost:8080/strings] 2016-08-24 09:25:37.240 DEBUG 9780 --- [nio-8080-exec-1] s.w.r.r.m.a.RequestMappingHandlerMapping : Looking up handler method for path /strings 2016-08-24 09:25:37.246 DEBUG 9780 --- [nio-8080-exec-1] s.w.r.r.m.a.RequestMappingHandlerMapping : Returning handler method [public org.reactivestreams.Publisher<java.lang.String> com.codependent.spring5.playground.reactive.web.StringsRestController.getStrings()] 2016-08-24 09:25:37.246 DEBUG 9780 --- [nio-8080-exec-1] o.s.b.f.s.DefaultListableBeanFactory : Returning cached instance of singleton bean 'stringsRestController' 2016-08-24 09:25:39.301 DEBUG 9780 --- [nio-8080-exec-1] o.s.w.s.h.ExceptionHandlingWebHandler : Could not complete request java.lang.IllegalStateException: RECEIVED at org.springframework.http.server.reactive.AbstractResponseBodyFlushProcessor$State.onNext(AbstractResponseBodyFlushProcessor.java:216) ~[spring-web-5.0.0.M1.jar:5.0.0.M1] at org.springframework.http.server.reactive.AbstractResponseBodyFlushProcessor.onNext(AbstractResponseBodyFlushProcessor.java:72) ~[spring-web-5.0.0.M1.jar:5.0.0.M1] at org.springframework.http.server.reactive.AbstractResponseBodyFlushProcessor.onNext(AbstractResponseBodyFlushProcessor.java:44) ~[spring-web-5.0.0.M1.jar:5.0.0.M1] at org.springframework.http.server.reactive.ChannelSendOperator$WriteWithBarrier.doNext(ChannelSendOperator.java:97) ~[spring-web-5.0.0.M1.jar:5.0.0.M1] at reactor.core.publisher.OperatorAdapter.onNext(OperatorAdapter.java:88) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:162) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:123) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at com.codependent.spring5.playground.reactive.web.StringsRestController$2.subscribe(StringsRestController.java:40) [classes/:na] at reactor.core.publisher.FluxSource.subscribe(FluxSource.java:59) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxMap.subscribe(FluxMap.java:73) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:193) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:96) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at org.springframework.http.server.reactive.ChannelSendOperator.subscribe(ChannelSendOperator.java:54) [spring-web-5.0.0.M1.jar:5.0.0.M1] at reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply$MonoThenApplyManager.onNext(MonoThenApply.java:133) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.Operators$DeferredScalarSubscriber.complete(Operators.java:1006) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply$MonoThenApplyManager$SecondSubscriber.onNext(MonoThenApply.java:203) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxResume$ResumeSubscriber.onNext(FluxResume.java:75) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:130) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:1507) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:186) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:1224) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxResume$ResumeSubscriber.onSubscribe(FluxResume.java:70) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:100) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:169) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply.subscribe(MonoThenApply.java:51) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoMapFuseable.subscribe(MonoMapFuseable.java:69) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply$MonoThenApplyManager.onNext(MonoThenApply.java:133) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:71) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:383) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:192) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:96) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:60) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatMap.subscribe(FluxConcatMap.java:116) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoNext.subscribe(MonoNext.java:45) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoOtherwiseIfEmpty.subscribe(MonoOtherwiseIfEmpty.java:47) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply.subscribe(MonoThenApply.java:58) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply.subscribe(MonoThenApply.java:58) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenSupply$MonoConcatIgnoreManager.drain(MonoThenSupply.java:167) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenSupply.subscribe(MonoThenSupply.java:55) [reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at org.springframework.http.server.reactive.ServletHttpHandlerAdapter.service(ServletHttpHandlerAdapter.java:93) [spring-web-5.0.0.M1.jar:5.0.0.M1] at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.4.jar:8.5.4] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_45] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.4.jar:8.5.4] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45] 2016-08-24 09:25:39.302 DEBUG 9780 --- [nio-8080-exec-1] o.s.h.s.r.ServletServerHttpResponse : Can't set the status 500 because the HTTP response has already been committed 2016-08-24 09:25:40.326 ERROR 9780 --- [nio-8080-exec-1] a.c.c.C.[.[.0.0.0.[.[httpHandlerServlet] : Servlet.service() for servlet [httpHandlerServlet] in context with path [] threw exception reactor.core.Exceptions$BubblingException: java.lang.IllegalStateException: RECEIVED at reactor.core.Exceptions.bubble(Exceptions.java:96) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.Exceptions.onErrorDropped(Exceptions.java:173) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply$MonoThenApplyManager$SecondSubscriber.onError(MonoThenApply.java:209) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxResume$ResumeSubscriber.onError(FluxResume.java:105) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.OperatorAdapter.doOnSubscriberError(OperatorAdapter.java:113) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.OperatorAdapter.onNext(OperatorAdapter.java:91) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:162) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:123) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at com.codependent.spring5.playground.reactive.web.StringsRestController$2.subscribe(StringsRestController.java:40) ~[classes/:na] at reactor.core.publisher.FluxSource.subscribe(FluxSource.java:59) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxMap.subscribe(FluxMap.java:73) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:193) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:96) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at org.springframework.http.server.reactive.ChannelSendOperator.subscribe(ChannelSendOperator.java:54) ~[spring-web-5.0.0.M1.jar:5.0.0.M1] at reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply$MonoThenApplyManager.onNext(MonoThenApply.java:133) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.Operators$DeferredScalarSubscriber.complete(Operators.java:1006) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply$MonoThenApplyManager$SecondSubscriber.onNext(MonoThenApply.java:203) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxResume$ResumeSubscriber.onNext(FluxResume.java:75) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:130) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:1507) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:186) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:1224) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxResume$ResumeSubscriber.onSubscribe(FluxResume.java:70) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:100) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:169) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply.subscribe(MonoThenApply.java:51) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoMapFuseable.subscribe(MonoMapFuseable.java:69) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply$MonoThenApplyManager.onNext(MonoThenApply.java:133) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:71) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:383) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:192) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:96) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:60) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.FluxConcatMap.subscribe(FluxConcatMap.java:116) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoNext.subscribe(MonoNext.java:45) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoOtherwiseIfEmpty.subscribe(MonoOtherwiseIfEmpty.java:47) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply.subscribe(MonoThenApply.java:58) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenApply.subscribe(MonoThenApply.java:58) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenSupply$MonoConcatIgnoreManager.drain(MonoThenSupply.java:167) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at reactor.core.publisher.MonoThenSupply.subscribe(MonoThenSupply.java:55) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] at org.springframework.http.server.reactive.ServletHttpHandlerAdapter.service(ServletHttpHandlerAdapter.java:93) ~[spring-web-5.0.0.M1.jar:5.0.0.M1] at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) ~[tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425) [tomcat-embed-core-8.5.4.jar:8.5.4] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.4.jar:8.5.4] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_45] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.4.jar:8.5.4] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45] Caused by: java.lang.IllegalStateException: RECEIVED at org.springframework.http.server.reactive.AbstractResponseBodyFlushProcessor$State.onNext(AbstractResponseBodyFlushProcessor.java:216) ~[spring-web-5.0.0.M1.jar:5.0.0.M1] at org.springframework.http.server.reactive.AbstractResponseBodyFlushProcessor.onNext(AbstractResponseBodyFlushProcessor.java:72) ~[spring-web-5.0.0.M1.jar:5.0.0.M1] at org.springframework.http.server.reactive.AbstractResponseBodyFlushProcessor.onNext(AbstractResponseBodyFlushProcessor.java:44) ~[spring-web-5.0.0.M1.jar:5.0.0.M1] at org.springframework.http.server.reactive.ChannelSendOperator$WriteWithBarrier.doNext(ChannelSendOperator.java:97) ~[spring-web-5.0.0.M1.jar:5.0.0.M1] at reactor.core.publisher.OperatorAdapter.onNext(OperatorAdapter.java:88) ~[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na] ... 60 common frames omitted {code}

    Spring JIRA | 6 months ago | Jose Antonio Iñigo
    java.lang.IllegalStateException: RECEIVED

    Root Cause Analysis

    1. java.lang.IllegalStateException

      RECEIVED

      at org.springframework.http.server.reactive.AbstractResponseBodyFlushProcessor$State.onNext()
    2. org.springframework.http
      ChannelSendOperator$WriteWithBarrier.doNext
      1. org.springframework.http.server.reactive.AbstractResponseBodyFlushProcessor$State.onNext(AbstractResponseBodyFlushProcessor.java:216)[spring-web-5.0.0.M1.jar:5.0.0.M1]
      2. org.springframework.http.server.reactive.AbstractResponseBodyFlushProcessor.onNext(AbstractResponseBodyFlushProcessor.java:72)[spring-web-5.0.0.M1.jar:5.0.0.M1]
      3. org.springframework.http.server.reactive.AbstractResponseBodyFlushProcessor.onNext(AbstractResponseBodyFlushProcessor.java:44)[spring-web-5.0.0.M1.jar:5.0.0.M1]
      4. org.springframework.http.server.reactive.ChannelSendOperator$WriteWithBarrier.doNext(ChannelSendOperator.java:97)[spring-web-5.0.0.M1.jar:5.0.0.M1]
      4 frames
    3. reactor.core.publisher
      FluxMap$MapSubscriber.onNext
      1. reactor.core.publisher.OperatorAdapter.onNext(OperatorAdapter.java:88)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      2. reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:162)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      3. reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:123)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      3 frames
    4. com.codependent.spring5
      StringsRestController$2.subscribe
      1. com.codependent.spring5.playground.reactive.web.StringsRestController$2.subscribe(StringsRestController.java:40)[classes/:na]
      1 frame
    5. reactor.core.publisher
      FluxConcatArray.subscribe
      1. reactor.core.publisher.FluxSource.subscribe(FluxSource.java:59)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      2. reactor.core.publisher.FluxMap.subscribe(FluxMap.java:73)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      3. reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:193)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      4. reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:96)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      4 frames
    6. org.springframework.http
      ChannelSendOperator.subscribe
      1. org.springframework.http.server.reactive.ChannelSendOperator.subscribe(ChannelSendOperator.java:54)[spring-web-5.0.0.M1.jar:5.0.0.M1]
      1 frame
    7. reactor.core.publisher
      MonoThenSupply.subscribe
      1. reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      2. reactor.core.publisher.MonoThenApply$MonoThenApplyManager.onNext(MonoThenApply.java:133)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      3. reactor.core.publisher.Operators$DeferredScalarSubscriber.complete(Operators.java:1006)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      4. reactor.core.publisher.MonoThenApply$MonoThenApplyManager$SecondSubscriber.onNext(MonoThenApply.java:203)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      5. reactor.core.publisher.FluxResume$ResumeSubscriber.onNext(FluxResume.java:75)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      6. reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:130)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      7. reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:1507)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      8. reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:186)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      9. reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:1224)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      10. reactor.core.publisher.FluxResume$ResumeSubscriber.onSubscribe(FluxResume.java:70)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      11. reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:100)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      12. reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:169)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      13. reactor.core.publisher.MonoThenApply.subscribe(MonoThenApply.java:51)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      14. reactor.core.publisher.MonoMapFuseable.subscribe(MonoMapFuseable.java:69)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      15. reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      16. reactor.core.publisher.MonoThenApply$MonoThenApplyManager.onNext(MonoThenApply.java:133)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      17. reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:71)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      18. reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      19. reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:383)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      20. reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:192)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      21. reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:96)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      22. reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:60)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      23. reactor.core.publisher.FluxConcatMap.subscribe(FluxConcatMap.java:116)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      24. reactor.core.publisher.MonoNext.subscribe(MonoNext.java:45)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      25. reactor.core.publisher.MonoOtherwiseIfEmpty.subscribe(MonoOtherwiseIfEmpty.java:47)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      26. reactor.core.publisher.MonoThenApply.subscribe(MonoThenApply.java:58)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      27. reactor.core.publisher.MonoThenApply.subscribe(MonoThenApply.java:58)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      28. reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      29. reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      30. reactor.core.publisher.MonoOtherwise.subscribe(MonoOtherwise.java:47)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      31. reactor.core.publisher.MonoThenSupply$MonoConcatIgnoreManager.drain(MonoThenSupply.java:167)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      32. reactor.core.publisher.MonoThenSupply.subscribe(MonoThenSupply.java:55)[reactor-core-3.0.0.BUILD-SNAPSHOT.jar:na]
      32 frames
    8. org.springframework.http
      ServletHttpHandlerAdapter.service
      1. org.springframework.http.server.reactive.ServletHttpHandlerAdapter.service(ServletHttpHandlerAdapter.java:93)[spring-web-5.0.0.M1.jar:5.0.0.M1]
      1 frame
    9. JavaServlet
      HttpServlet.service
      1. javax.servlet.http.HttpServlet.service(HttpServlet.java:729)[tomcat-embed-core-8.5.4.jar:8.5.4]
      1 frame
    10. Glassfish Core
      CoyoteAdapter.service
      1. org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)[tomcat-embed-core-8.5.4.jar:8.5.4]
      2. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)[tomcat-embed-core-8.5.4.jar:8.5.4]
      3. org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)[tomcat-embed-core-8.5.4.jar:8.5.4]
      4. org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108)[tomcat-embed-core-8.5.4.jar:8.5.4]
      5. org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)[tomcat-embed-core-8.5.4.jar:8.5.4]
      6. org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)[tomcat-embed-core-8.5.4.jar:8.5.4]
      7. org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)[tomcat-embed-core-8.5.4.jar:8.5.4]
      8. org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)[tomcat-embed-core-8.5.4.jar:8.5.4]
      9. org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)[tomcat-embed-core-8.5.4.jar:8.5.4]
      9 frames
    11. Grizzly HTTP
      SocketProcessorBase.run
      1. org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)[tomcat-embed-core-8.5.4.jar:8.5.4]
      2. org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)[tomcat-embed-core-8.5.4.jar:8.5.4]
      3. org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)[tomcat-embed-core-8.5.4.jar:8.5.4]
      4. org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)[tomcat-embed-core-8.5.4.jar:8.5.4]
      5. org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)[tomcat-embed-core-8.5.4.jar:8.5.4]
      5 frames
    12. Java RT
      ThreadPoolExecutor$Worker.run
      1. java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.0_45]
      2. java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[na:1.8.0_45]
      2 frames
    13. Tomcat Util
      TaskThread$WrappingRunnable.run
      1. org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)[tomcat-embed-core-8.5.4.jar:8.5.4]
      1 frame
    14. Java RT
      Thread.run
      1. java.lang.Thread.run(Thread.java:745)[na:1.8.0_45]
      1 frame