hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Berlin (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HTTPCLIENT-776) NPE w/ AbstractPoolEntry.open
Date Tue, 20 May 2008 16:53:55 GMT

    [ https://issues.apache.org/jira/browse/HTTPCLIENT-776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12598357#action_12598357
] 

Sam Berlin commented on HTTPCLIENT-776:
---------------------------------------

The NPE can happen if another thread calls AbortableHttpRequest.abort() while AbstractPoolEntry
is in the process of opening.  

The abort flow is:
 HttpRequestBase.abort  -> ConnectionReleaseTrigger.abortConnection -> AbstractClientConnAdapter.abortConnection
-> AbstractPooledConnAdapter.shutdown -> AbstractPoolEntry.resetTrackedRoute

The request flow can get into open() from another thread, leaving it open to tracker becoming
null at any time.

... not completely sure right now how to fix it.

> NPE w/ AbstractPoolEntry.open
> -----------------------------
>
>                 Key: HTTPCLIENT-776
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-776
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>    Affects Versions: 4.0 Alpha 4
>            Reporter: Sam Berlin
>
> java.lang.NullPointerException
>     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:171)
>     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
>     at org.apache.http.impl.client.DefaultClientRequestDirector.execute(DefaultClientRequestDirector.java:309)
>     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:501)
>     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:456)
>     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:422)
>     at com.limegroup.gnutella.http.DefaultHttpExecutor.performRequest(DefaultHttpExecutor.java:97)
>     at com.limegroup.gnutella.http.DefaultHttpExecutor.access$000(DefaultHttpExecutor.java:26)
>     at com.limegroup.gnutella.http.DefaultHttpExecutor$MultiRequestor.run(DefaultHttpExecutor.java:135)
>     at org.limewire.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1006)
>     at org.limewire.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:549)
>     at java.lang.Thread.run(Unknown Source)
> Seeing a lot of these against Alpha4.  Also seeing still the occassional IllegalStateException
of:
> java.lang.IllegalStateException: Connection already open.
>     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:150)
>     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
>     at org.apache.http.impl.client.DefaultClientRequestDirector.execute(DefaultClientRequestDirector.java:309)
>     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:501)
>     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:456)
>     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:422)
>     at com.limegroup.gnutella.http.DefaultHttpExecutor.performRequest(DefaultHttpExecutor.java:97)
>     at com.limegroup.gnutella.http.DefaultHttpExecutor.access$000(DefaultHttpExecutor.java:26)
>     at com.limegroup.gnutella.http.DefaultHttpExecutor$MultiRequestor.run(DefaultHttpExecutor.java:135)
>     at org.limewire.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1006)
>     at org.limewire.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:549)
>     at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message