Allocates the object.
Deallocates the object and sets it {@link PooledObjectState#IDLE IDLE} if it is currently {@link PooledObjectState#ALLOCATED ALLOCATED}.
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).
Obtains the time (using the same basis as {@link DateTimeHelper.currentTimeMillis()}) that this object was created.
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).
Obtains the time the wrapped object was last borrowed.
Obtains the time the wrapped object was last returned.
Returns an estimate of the last time this object was used. If the class of the pooled object implements {@link TrackedUse}, what is returned is the maximum of {@link TrackedUse#getLastUsed()} and {@link #getLastBorrowTime()}; otherwise this method gives the same value as {@link #getLastBorrowTime()}.
Returns the state of this object. @return state
Sets the state to {@link PooledObjectState#INVALID INVALID}
Marks the pooled object as abandoned.
Marks the object as returning to the pool.
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.
Attempts to place the pooled object in the {@link PooledObjectState#EVICTION} state.
Provides a string form of the wrapper for debug purposes. The format is not fixed and may change at any time. <p> {@inheritDoc}
Record the current stack trace as the last time the object was used.