[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Burke updated HTTPCLIENT-1229:
---------------------------------------

    Attachment: BasicClientConnectionManager.java

A potential fix that involves extending the synchronized blocks to encompass 
assigning to shutdown and assertNotShtudown statements.
                
> @ThreadSafe BasicClientConnectionManager is not threadsafe with respect to 
> shutdown
> -----------------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-1229
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1229
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpConn
>    Affects Versions: 4.2.1
>            Reporter: Jonathan Burke
>            Priority: Minor
>         Attachments: BasicClientConnectionManager.java, stackTrace.txt, 
> test.txt
>
>
> Since the assignment to variable shutdown in the shutdown method (line 262) 
> is not part of the synchronize block and none of the assertNotShutdown method 
> calls are within the synchronized blocks of their enclosing methods, it is 
> possible to have threads execute the commands of BasicClientConnectionManager 
> methods in the following sequence.
> Thread 1
> releaseConnection (or some other method that uses assertNotShutdown is called)
>   assertNotShutdown - Passes - Line 183
> Thread 2
> shutdown
>   the shutdown flag becomes true - Line 262
>   shutdown releases this.poolEntry and this.conn in the synchronized(this) 
> block
>   
> Thread 1
>   release connection's synchronized(this) block get's executed 
>       this.poolEntry is null in the try block causing a null pointer 
> exception - Line 211
>       this.poolEntry is null in the finally block causing a null pointer 
> exception - Line 224

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to