ok2c / httpcomponents-jackson

JSON message asynchronous producers and consumers for Apache HttpComponents 5.0 based on Jackson JSON library
https://ok2c.github.io/httpcomponents-jackson
Apache License 2.0
7 stars 6 forks source link

Nullpointer Exception #2

Closed natnet00 closed 4 years ago

natnet00 commented 4 years ago

Occurs sometimes when consuming json message asynchronously. The problem is that the atomic reference is probably set to null by releaseResources(). So first releaseResources() is called, then fail().

2020-05-13 09:48:36,489 ERROR [async] java.lang.NullPointerException at com.ok2c.hc5.json.http.JsonMessageConsumer.failed(JsonMessageConsumer.java:110) at com.ok2c.hc5.json.http.JsonResponseObjectConsumer.failed(JsonResponseObjectConsumer.java:51) at org.apache.hc.client5.http.impl.async.InternalAbstractHttpAsyncClient$1$2.failed(InternalAbstractHttpAsyncClient.java:304) at org.apache.hc.client5.http.impl.async.AsyncRedirectExec$1.failed(AsyncRedirectExec.java:227) at org.apache.hc.client5.http.impl.async.AsyncHttpRequestRetryExec$1.failed(AsyncHttpRequestRetryExec.java:167) at org.apache.hc.client5.http.impl.async.AsyncProtocolExec$1.failed(AsyncProtocolExec.java:258) at org.apache.hc.client5.http.impl.async.H2AsyncMainClientExec$1.failed(H2AsyncMainClientExec.java:108) at org.apache.hc.core5.http.nio.command.RequestExecutionCommand.failed(RequestExecutionCommand.java:95) at org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer.onDisconnect(AbstractH2StreamMultiplexer.java:568) at org.apache.hc.core5.http2.impl.nio.AbstractH2IOEventHandler.disconnected(AbstractH2IOEventHandler.java:96) at org.apache.hc.core5.http2.impl.nio.ClientH2IOEventHandler.disconnected(ClientH2IOEventHandler.java:39) at org.apache.hc.core5.reactor.InternalDataChannel.disconnected(InternalDataChannel.java:174) at org.apache.hc.core5.reactor.SingleCoreIOReactor.processClosedSessions(SingleCoreIOReactor.java:229) at org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:134) at org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:82) at org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44) at java.base/java.lang.Thread.run(Thread.java:834)

ok2c commented 4 years ago

@natnet00 Corrected with 4144fdb. The problem occurs if there are enqueued requests in the I/O sessions when the session gets unexpectedly terminated. It looks like a fairly minor issue to me.