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]

Reply via email to