org.apache.http.impl.conn.tsccm.AbstractConnPool
An abstract connection pool.
It is used by the ThreadSafeClientConnManager.
The abstract pool includes a poolLock, which is used to
synchronize access to the internal pool datastructures.
Don't use synchronized for that purpose!
Known Direct Subclasses
Summary
Fields
Protected Constructors
Public Methods
Protected Methods
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Fields
The handler for idle connections.
protected
boolean
isShutDown
Indicates whether this pool is shut down.
References to issued connections.
Objects in this set are of class
BasicPoolEntryRef,
and point to the pool entry for the issued connection.
GCed connections are detected by the missing pool entries.
protected
int
numConnections
The current total number of connections.
protected
final
Lock
poolLock
The global lock for this pool.
A reference queue to track loss of pool entries to GC.
The same queue is used to track loss of the connection manager,
so we cannot specialize the type.
Protected Constructors
protected
AbstractConnPool()
Creates a new connection pool.
Public Methods
public
void
closeExpiredConnections()
public
void
closeIdleConnections(long idletime, TimeUnit tunit)
Closes idle connections.
Parameters
| idletime
| the time the connections should have been idle
in order to be closed now |
| tunit
| the unit for the idletime
|
public
abstract
void
deleteClosedConnections()
Deletes all entries for closed connections.
public
void
enableConnectionGC()
Enables connection garbage collection (GC).
This method must be called immediately after creating the
connection pool. It is not possible to enable connection GC
after pool entries have been created. Neither is it possible
to disable connection GC.
Throws
| IllegalStateException
| if connection GC is already enabled, or if it cannot be
enabled because there already are pool entries
|
public
abstract
void
freeEntry(BasicPoolEntry entry, boolean reusable, long validDuration, TimeUnit timeUnit)
Returns an entry into the pool.
The connection of the entry is expected to be in a suitable state,
either open and re-usable, or closed. The pool will not make any
attempt to determine whether it can be re-used or not.
Parameters
| entry
| the entry for the connection to release |
| reusable
| true if the entry is deemed
reusable, false otherwise. |
| validDuration
| The duration that the entry should remain free and reusable. |
| timeUnit
| The unit of time the duration is measured in.
|
Obtains a pool entry with a connection within the given timeout.
Parameters
| route
| the route for which to get the connection |
| timeout
| the timeout, 0 or negative for no timeout |
| tunit
| the unit for the timeout,
may be null only if there is no timeout |
Returns
- pool entry holding a connection for the route
public
void
shutdown()
Shuts down this pool and all associated resources.
Overriding methods MUST call the implementation here!
Protected Methods
Closes a connection from this pool.
Parameters
| conn
| the connection to close, or null
|
protected
abstract
void
handleLostEntry(HttpRoute route)
Handles cleaning up for a lost pool entry with the given route.
A lost pool entry corresponds to a connection that was
garbage collected instead of being properly released.
Parameters
| route
| the route of the pool entry that was lost
|