Skip to content

NPE is thrown while writing the response [SPR-14941] #19508

@spring-projects-issues

Description

@spring-projects-issues

Violeta Georgieva opened SPR-14941 and commented

o.s.http.server.reactive.AbstractResponseBodyProcessor.State.REQUESTED state:

  • onNext is invoked with a non empty DataBuffer
  • The state is changed to RECEIVED, but the DataBuffer is still not processed
    (o.s.http.server.reactive.AbstractResponseBodyProcessor.receiveBuffer(DataBuffer) is not invoked)
  • At that moment the web container sends event onWritePossible,
    but as the DataBuffer is still not processed, NPE is thrown when trying to write the response.
java.lang.NullPointerException: null
at org.springframework.http.server.reactive.ServletServerHttpResponse$ResponseBodyProcessor.write(ServletServerHttpResponse.java:215)
at org.springframework.http.server.reactive.AbstractResponseBodyProcessor$State$3.onWritePossible(AbstractResponseBodyProcessor.java:253)
at org.springframework.http.server.reactive.AbstractResponseBodyProcessor.onWritePossible(AbstractResponseBodyProcessor.java:113)
at org.springframework.http.server.reactive.ServletServerHttpResponse$ResponseBodyWriteListener.onWritePossible(ServletServerHttpResponse.java:247)
at org.eclipse.jetty.server.HttpOutput.run(HttpOutput.java:996)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1286)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:428)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
at java.lang.Thread.run(Thread.java:745)

Affects: 5.0 M3

Metadata

Metadata

Assignees

Labels

in: webIssues in web modules (web, webmvc, webflux, websocket)type: bugA general bug

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions