T
- the type of object in the pooljava.lang.Comparable<PooledObject<T>>
, PooledObject<T>
PooledSoftReference
public 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. the length of time since the
instance was returned to the pool.
|
boolean |
deallocate() |
|
boolean |
endEvictionTest(java.util.Deque<PooledObject<T>> idleQueue) |
Called to inform the object that the eviction test has ended.
|
long |
getActiveTimeMillis() |
Obtains the time in milliseconds that this object last spent in 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() |
Obtains the time (using the same basis as
System.currentTimeMillis() ) that this object was created. |
long |
getIdleTimeMillis() |
Obtains the time in milliseconds that this object last spend in the
idle state (it may still be idle in which case subsequent calls will
return an increased value).
|
long |
getLastBorrowTime() |
Obtains the time the wrapped object was last borrowed.
|
long |
getLastReturnTime() |
Obtains the time the wrapped object was last returned.
|
long |
getLastUsedTime() |
Return an estimate of the last time this object was used.
|
T |
getObject() |
Obtains 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?
|
void |
setRequireFullStackTrace(boolean requireFullStackTrace) |
Configures the stack trace generation strategy based on whether or not fully
detailed stack traces are required.
|
boolean |
startEvictionTest() |
Attempts 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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
equals, hashCode
public DefaultPooledObject(T object)
object
- The object to wrappublic T getObject()
PooledObject
PooledObject
.getObject
in interface PooledObject<T>
public long getCreateTime()
PooledObject
System.currentTimeMillis()
) that this object was created.getCreateTime
in interface PooledObject<T>
public long getActiveTimeMillis()
PooledObject
getActiveTimeMillis
in interface PooledObject<T>
public long getIdleTimeMillis()
PooledObject
getIdleTimeMillis
in interface PooledObject<T>
public long getLastBorrowTime()
PooledObject
getLastBorrowTime
in interface PooledObject<T>
public long getLastReturnTime()
PooledObject
getLastReturnTime
in interface PooledObject<T>
public long getBorrowedCount()
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 int compareTo(PooledObject<T> other)
PooledObject
Note: 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 java.lang.String toString()
PooledObject
toString
in interface PooledObject<T>
toString
in class java.lang.Object
public boolean startEvictionTest()
PooledObject
PooledObjectState.EVICTION
state.startEvictionTest
in interface PooledObject<T>
true
if the object was placed in the
PooledObjectState.EVICTION
state otherwise
false
public boolean endEvictionTest(java.util.Deque<PooledObject<T>> idleQueue)
PooledObject
endEvictionTest
in interface PooledObject<T>
idleQueue
- The queue of idle objects to which the object should be
returnedpublic boolean allocate()
allocate
in interface PooledObject<T>
true
if the original state was IDLE
public boolean deallocate()
deallocate
in interface PooledObject<T>
true
if the state was ALLOCATED
public void invalidate()
INVALID
invalidate
in interface PooledObject<T>
public void use()
PooledObject
use
in interface PooledObject<T>
public void printStackTrace(java.io.PrintWriter writer)
PooledObject
printStackTrace
in interface PooledObject<T>
writer
- The destination for the debug outputpublic PooledObjectState getState()
getState
in interface PooledObject<T>
public void markAbandoned()
markAbandoned
in interface PooledObject<T>
public void markReturning()
markReturning
in interface PooledObject<T>
public void setLogAbandoned(boolean logAbandoned)
PooledObject
setLogAbandoned
in interface PooledObject<T>
logAbandoned
- The new configuration setting for abandoned
object trackingpublic void setRequireFullStackTrace(boolean requireFullStackTrace)
requireFullStackTrace
- the new configuration setting for abandoned object
loggingCopyright © 2000-2018 Apache Software Foundation. All Rights Reserved.