[ 
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]

Reply via email to