@Contract(threading=SAFE) class ConnectionHolder extends java.lang.Object implements ConnectionReleaseTrigger, org.apache.http.concurrent.Cancellable, java.io.Closeable
| Modifier and Type | Field and Description |
|---|---|
private org.apache.commons.logging.Log |
log |
private org.apache.http.HttpClientConnection |
managedConn |
private HttpClientConnectionManager |
manager |
private java.util.concurrent.atomic.AtomicBoolean |
released |
private boolean |
reusable |
private java.lang.Object |
state |
private java.util.concurrent.TimeUnit |
timeUnit |
private long |
validDuration |
| Constructor and Description |
|---|
ConnectionHolder(org.apache.commons.logging.Log log,
HttpClientConnectionManager manager,
org.apache.http.HttpClientConnection managedConn) |
| Modifier and Type | Method and Description |
|---|---|
void |
abortConnection()
Releases the connection without the option of keep-alive.
|
boolean |
cancel() |
void |
close() |
boolean |
isReleased() |
boolean |
isReusable() |
void |
markNonReusable() |
void |
markReusable() |
void |
releaseConnection()
Releases the connection with the option of keep-alive.
|
private void |
releaseConnection(boolean reusable) |
void |
setState(java.lang.Object state) |
void |
setValidFor(long duration,
java.util.concurrent.TimeUnit timeUnit) |
private final org.apache.commons.logging.Log log
private final HttpClientConnectionManager manager
private final org.apache.http.HttpClientConnection managedConn
private final java.util.concurrent.atomic.AtomicBoolean released
private volatile boolean reusable
private volatile java.lang.Object state
private volatile long validDuration
private volatile java.util.concurrent.TimeUnit timeUnit
public ConnectionHolder(org.apache.commons.logging.Log log,
HttpClientConnectionManager manager,
org.apache.http.HttpClientConnection managedConn)
public boolean isReusable()
public void markReusable()
public void markNonReusable()
public void setState(java.lang.Object state)
public void setValidFor(long duration,
java.util.concurrent.TimeUnit timeUnit)
private void releaseConnection(boolean reusable)
public void releaseConnection()
ConnectionReleaseTriggerabortConnection for a hard release. The
connection may be reused as specified by the duration.releaseConnection in interface ConnectionReleaseTriggerpublic void abortConnection()
ConnectionReleaseTriggerConnectionReleaseTrigger.releaseConnection() for a graceful release.abortConnection in interface ConnectionReleaseTriggerpublic boolean cancel()
cancel in interface org.apache.http.concurrent.Cancellablepublic boolean isReleased()
public void close()
throws java.io.IOException
close in interface java.io.Closeableclose in interface java.lang.AutoCloseablejava.io.IOException