T - the type of object in the pooljava.lang.Comparable<T>, PooledObject<T>PooledSoftReferencepublic class DefaultPooledObject<T> extends java.lang.Object implements PooledObject<T>
This class is intended to be thread-safe.
| Constructor | Description |
|---|---|
DefaultPooledObject(T object) |
Create a new instance that wraps the provided object so that the pool can
track the state of the pooled object.
|
| Modifier and Type | Method | Description |
|---|---|---|
boolean |
allocate() |
Allocates the object.
|
int |
compareTo(PooledObject<T> other) |
Orders instances based on idle time - i.e.
|
boolean |
deallocate() |
|
boolean |
endEvictionTest(java.util.Deque<PooledObject<T>> idleQueue) |
Called to inform the object that the eviction test has ended.
|
long |
getActiveTimeMillis() |
Obtain the time in milliseconds that this object last spent in the the
active state (it may still be active in which case subsequent calls will
return an increased value).
|
long |
getBorrowedCount() |
Get the number of times this object has been borrowed.
|
long |
getCreateTime() |
Obtain the time (using the same basis as
System.currentTimeMillis()) that this object was created. |
long |
getIdleTimeMillis() |
Obtain the time in milliseconds that this object last spend in the the
idle state (it may still be idle in which case subsequent calls will
return an increased value).
|
long |
getLastBorrowTime() |
Obtain the time the wrapped object was last borrowed.
|
long |
getLastReturnTime() |
Obtain the time the wrapped object was last returned.
|
long |
getLastUsedTime() |
Return an estimate of the last time this object was used.
|
T |
getObject() |
Obtain the underlying object that is wrapped by this instance of
PooledObject. |
PooledObjectState |
getState() |
Returns the state of this object.
|
void |
invalidate() |
Sets the state to
INVALID |
void |
markAbandoned() |
Marks the pooled object as abandoned.
|
void |
markReturning() |
Marks the object as returning to the pool.
|
void |
printStackTrace(java.io.PrintWriter writer) |
Prints the stack trace of the code that borrowed this pooled object and
the stack trace of the last code to use this object (if available) to
the supplied writer.
|
void |
setLogAbandoned(boolean logAbandoned) |
Is abandoned object tracking being used? If this is true the
implementation will need to record the stack trace of the last caller to
borrow this object.
|
boolean |
startEvictionTest() |
Attempt to place the pooled object in the
PooledObjectState.EVICTION state. |
java.lang.String |
toString() |
Provides a String form of the wrapper for debug purposes.
|
void |
use() |
Record the current stack trace as the last time the object was used.
|
equals, getClass, hashCode, notify, notifyAll, wait, wait, waitequals, hashCodepublic DefaultPooledObject(T object)
object - The object to wrappublic boolean allocate()
allocate in interface PooledObject<T>true if the original state was IDLEpublic int compareTo(PooledObject<T> other)
PooledObjectNote: This class has a natural ordering that is inconsistent with equals if distinct objects have the same identity hash code.
compareTo in interface java.lang.Comparable<T>compareTo in interface PooledObject<T>public boolean deallocate()
deallocate in interface PooledObject<T>true if the state was ALLOCATEDpublic boolean endEvictionTest(java.util.Deque<PooledObject<T>> idleQueue)
PooledObjectendEvictionTest in interface PooledObject<T>idleQueue - The queue of idle objects to which the object should be
returnedpublic long getActiveTimeMillis()
PooledObjectgetActiveTimeMillis in interface PooledObject<T>public long getBorrowedCount()
public long getCreateTime()
PooledObjectSystem.currentTimeMillis()) that this object was created.getCreateTime in interface PooledObject<T>public long getIdleTimeMillis()
PooledObjectgetIdleTimeMillis in interface PooledObject<T>public long getLastBorrowTime()
PooledObjectgetLastBorrowTime in interface PooledObject<T>public long getLastReturnTime()
PooledObjectgetLastReturnTime in interface PooledObject<T>public long getLastUsedTime()
TrackedUse, what is returned is
the maximum of TrackedUse.getLastUsed() and
getLastBorrowTime(); otherwise this method gives the same
value as getLastBorrowTime().getLastUsedTime in interface PooledObject<T>public T getObject()
PooledObjectPooledObject.getObject in interface PooledObject<T>public PooledObjectState getState()
getState in interface PooledObject<T>public void invalidate()
INVALIDinvalidate in interface PooledObject<T>public void markAbandoned()
markAbandoned in interface PooledObject<T>public void markReturning()
markReturning in interface PooledObject<T>public void printStackTrace(java.io.PrintWriter writer)
PooledObjectprintStackTrace in interface PooledObject<T>writer - The destination for the debug outputpublic void setLogAbandoned(boolean logAbandoned)
PooledObjectsetLogAbandoned in interface PooledObject<T>logAbandoned - The new configuration setting for abandoned
object trackingpublic boolean startEvictionTest()
PooledObjectPooledObjectState.EVICTION state.startEvictionTest in interface PooledObject<T>true if the object was placed in the
PooledObjectState.EVICTION state otherwise
falsepublic java.lang.String toString()
PooledObject
toString in interface PooledObject<T>toString in class java.lang.Objectpublic void use()
PooledObjectuse in interface PooledObject<T>Copyright © 2001-2014 Apache Software Foundation. Documenation generated March 25 2019.