[
https://issues.apache.org/jira/browse/HTTPCLIENT-2126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17227079#comment-17227079
]
koji lin commented on HTTPCLIENT-2126:
--------------------------------------
I see. I tried the fix of the change and I think AbstractAsyncResponseConsumer
need to handle/initialize `dataConsumerSupplier.get()`.
{code:java}
java.lang.NullPointerException
at
org.apache.hc.core5.http.nio.support.AbstractAsyncResponseConsumer.streamEnd(AbstractAsyncResponseConsumer.java:155)
at
org.apache.hc.client5.http.impl.cache.AsyncCachingExec.triggerResponse(AsyncCachingExec.java:163)
at
org.apache.hc.client5.http.impl.cache.AsyncCachingExec.access$700(AsyncCachingExec.java:93)
at
org.apache.hc.client5.http.impl.cache.AsyncCachingExec$BackendResponseHandler$3.completed(AsyncCachingExec.java:544)
at
org.apache.hc.client5.http.impl.cache.AsyncCachingExec$BackendResponseHandler$3.completed(AsyncCachingExec.java:537)
at
org.apache.hc.client5.http.impl.cache.BasicHttpAsyncCache$8.completed(BasicHttpAsyncCache.java:435)
at
org.apache.hc.client5.http.impl.cache.BasicHttpAsyncCache$8.completed(BasicHttpAsyncCache.java:431)
at
org.apache.hc.client5.http.impl.cache.BasicHttpAsyncCache$2.completed(BasicHttpAsyncCache.java:178)
at
org.apache.hc.client5.http.impl.cache.BasicHttpAsyncCache$2.completed(BasicHttpAsyncCache.java:174)
at
org.apache.hc.client5.http.cache.HttpAsyncCacheStorageAdaptor.putEntry(HttpAsyncCacheStorageAdaptor.java:61)
at
org.apache.hc.client5.http.impl.cache.BasicHttpAsyncCache.storeEntry(BasicHttpAsyncCache.java:174)
at
org.apache.hc.client5.http.impl.cache.BasicHttpAsyncCache.storeInCache(BasicHttpAsyncCache.java:166)
at
org.apache.hc.client5.http.impl.cache.BasicHttpAsyncCache.createCacheEntry(BasicHttpAsyncCache.java:431)
at
org.apache.hc.client5.http.impl.cache.AsyncCachingExec$BackendResponseHandler.triggerNewCacheEntryResponse(AsyncCachingExec.java:530)
at
org.apache.hc.client5.http.impl.cache.AsyncCachingExec$BackendResponseHandler$4.completed(AsyncCachingExec.java:585)
at
org.apache.hc.client5.http.impl.cache.AsyncCachingExec$BackendResponseHandler$4.completed(AsyncCachingExec.java:572)
at
org.apache.hc.client5.http.impl.cache.BasicHttpAsyncCache$9.completed(BasicHttpAsyncCache.java:510)
at
org.apache.hc.client5.http.impl.cache.BasicHttpAsyncCache$9.completed(BasicHttpAsyncCache.java:470)
at
org.apache.hc.client5.http.cache.HttpAsyncCacheStorageAdaptor.getEntry(HttpAsyncCacheStorageAdaptor.java:74)
at
org.apache.hc.client5.http.impl.cache.BasicHttpAsyncCache.getCacheEntry(BasicHttpAsyncCache.java:470)
at
org.apache.hc.client5.http.impl.cache.AsyncCachingExec$BackendResponseHandler.completed(AsyncCachingExec.java:572)
at
org.apache.hc.client5.http.impl.cache.AsyncCachingExec$3.completed(AsyncCachingExec.java:342)
at
org.apache.hc.client5.http.impl.async.AsyncProtocolExec$1.completed(AsyncProtocolExec.java:252)
at
org.apache.hc.client5.http.impl.async.H2AsyncMainClientExec$1.consumeResponse(H2AsyncMainClientExec.java:143)
at
org.apache.hc.core5.http2.impl.nio.ClientH2StreamHandler.consumeHeader(ClientH2StreamHandler.java:222)
at
org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer$H2Stream.consumeHeader(AbstractH2StreamMultiplexer.java:1596)
at
org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer.consumeHeaderFrame(AbstractH2StreamMultiplexer.java:1078)
at
org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer.consumeFrame(AbstractH2StreamMultiplexer.java:762)
at
org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer.onInput(AbstractH2StreamMultiplexer.java:444)
at
org.apache.hc.core5.http2.impl.nio.AbstractH2IOEventHandler.inputReady(AbstractH2IOEventHandler.java:65)
at
org.apache.hc.core5.http2.impl.nio.ClientH2IOEventHandler.inputReady(ClientH2IOEventHandler.java:39)
at
org.apache.hc.core5.reactor.InternalDataChannel.onIOEvent(InternalDataChannel.java:124)
at
org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:51)
at
org.apache.hc.core5.reactor.SingleCoreIOReactor.processEvents(SingleCoreIOReactor.java:178)
at
org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:127)
at
org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:85)
at
org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44)
at java.base/java.lang.Thread.run(Thread.java:834)
{code}
> AsyncCachingExec throws NPE when response body is null
> ------------------------------------------------------
>
> Key: HTTPCLIENT-2126
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2126
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpClient (async)
> Affects Versions: 5.0.3
> Reporter: koji lin
> Priority: Minor
> Fix For: 5.0.4, 5.1-beta1
>
>
> [https://github.com/apache/httpcomponents-client/blob/master/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AsyncCachingExec.java#L160]
>
> This makes client's returned future/callback
> susccess(AsyncExecCallback#handleResponse triggers this?) but
> AsyncResponseConsumer/AsyncExecCallback failed.
>
> Curious if it should avoid exception here.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]