You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Sam Berlin (JIRA)" <ji...@apache.org> on 2008/05/20 17:50:56 UTC

[jira] Created: (HTTPCLIENT-776) NPE w/ AbstractPoolEntry.open

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


[jira] Resolved: (HTTPCLIENT-776) NPE w/ AbstractPoolEntry.open

Posted by "Oleg Kalnichevski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HTTPCLIENT-776?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oleg Kalnichevski resolved HTTPCLIENT-776.
------------------------------------------

    Resolution: Fixed

Patch checked in. Many thanks, Sam

I am sorry it has been taking so long to get your account set up. Only Erik can request a new account creation and he still appears off-line.

Oleg

> 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
>             Fix For: 4.0 Alpha 5 
>
>         Attachments: changes.txt, changes.txt
>
>
> 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


[jira] Updated: (HTTPCLIENT-776) NPE w/ AbstractPoolEntry.open

Posted by "Oleg Kalnichevski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HTTPCLIENT-776?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oleg Kalnichevski updated HTTPCLIENT-776:
-----------------------------------------

    Fix Version/s: 4.0 Alpha 5 

Since it's reproducible, we can surely fix it. If you do not come up with a fix, I'll look into it in the coming days.

Oleg

> 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
>             Fix For: 4.0 Alpha 5 
>
>         Attachments: changes.txt
>
>
> 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


[jira] Commented: (HTTPCLIENT-776) NPE w/ AbstractPoolEntry.open

Posted by "Sam Berlin (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HTTPCLIENT-776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12598339#action_12598339 ] 

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

The only possible way I can see the NPE happening is if the AbstractPoolEntry instance gets into open(HttpRoute, HttpContext, HttpParams), gets through to line 161: this.tracker = new RouteTracker(route) ... and then another thread calls calls resetTrackedRoute on the same AbstractPoolEntry before the open(..) thread continues to line 171.

> 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


[jira] Commented: (HTTPCLIENT-776) NPE w/ AbstractPoolEntry.open

Posted by "Sam Berlin (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HTTPCLIENT-776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12598458#action_12598458 ] 

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

Looks like this change: http://fisheye6.cenqua.com/browse/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/conn/AbstractClientConnAdapter.java?ignore1=B&ignore2=b&r1=652020&r2=652945&u=3 caused it.  I think the change is a good one, but had the side effect of causing tracker to be nulled out, which exposes the problem.

> 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
>         Attachments: changes.txt
>
>
> 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


[jira] Commented: (HTTPCLIENT-776) NPE w/ AbstractPoolEntry.open

Posted by "Sam Berlin (JIRA)" <ji...@apache.org>.
    [ 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


[jira] Updated: (HTTPCLIENT-776) NPE w/ AbstractPoolEntry.open

Posted by "Sam Berlin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HTTPCLIENT-776?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sam Berlin updated HTTPCLIENT-776:
----------------------------------

    Attachment: changes.txt

Attached is a testcase that reproduces the problem -- testAbortBeforeSocketCreate is throwing the NPE right now.  I'm really not positive how to fix it (but am still looking into it).   The basic problem is that you can abort the request before DefaultClientConnectionOperator creates the socket, which means that the socket isn't closed or marked as should-be-closed when the request is aborted.  This means that when after abort is called, openConnection still continues as normal & connects to the host, then it goes back to AbstractPoolEntry.open, where tracker is null & throws the NPE.

(I'm not marking the attachment as intended for inclusion, because there's still some more testcases, and hopefully some fixes, that I want to write.)

> 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
>         Attachments: changes.txt
>
>
> 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


[jira] Updated: (HTTPCLIENT-776) NPE w/ AbstractPoolEntry.open

Posted by "Sam Berlin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HTTPCLIENT-776?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sam Berlin updated HTTPCLIENT-776:
----------------------------------

    Attachment: changes.txt

The attached patch should fix the problems, plus adds a few new tests (two of which would have failed before).

Basically I captured the 'shutdown' event in DefaultClientConnection and prevent opening(..) from completely succesfully if the connection was shutdown prior to an opening announcement.  Also in AbstractPoolEntry we check for 'tracker' becoming null and fail after the operator connects if tracker became null.  With respect to AbstractPoolEntry, it's not completely clear that a side effect of 'resetTrackedRoute' will prevent open(..) from completing, so I added it to the javadoc.  A better way would be renaming it to something like shutdownEntry().   It was previously called 'closing' (before resetTrackedRoute), meaning it was notification that something external was being shutdown... but it's kind of active itself, given that there's an open(..) method that can be aborted due to it.

(I'd check this in, but haven't gotten any notifications about an account setup yet. Sorry!)

> 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
>             Fix For: 4.0 Alpha 5 
>
>         Attachments: changes.txt, changes.txt
>
>
> 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