Jonathan Burke created HTTPCLIENT-1229:
------------------------------------------
Summary: @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
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]