Package org.apache.commons.pool.impl
Class EvictionTimer
java.lang.Object
org.apache.commons.pool.impl.EvictionTimer
Provides a shared idle object eviction timer for all pools. This class wraps
the standard Timer
and keeps track of how many pools are using it.
If no pools are using the timer, it is canceled. This prevents a thread
being left running which, in application server environments, can lead to
memory leads and/or prevent applications from shutting down or reloading
cleanly.
This class has package scope to prevent its inclusion in the pool public API. The class declaration below should *not* be changed to public.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
PrivilegedAction
used to get the ContextClassLoaderprivate static class
PrivilegedAction
used to set the ContextClassLoader -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static Timer
Timer instanceprivate static int
Static usage count tracker -
Constructor Summary
Constructors -
Method Summary
-
Field Details
-
_timer
Timer instance -
_usageCount
private static int _usageCountStatic usage count tracker
-
-
Constructor Details
-
EvictionTimer
private EvictionTimer()Prevent instantiation
-
-
Method Details
-
schedule
Add the specified eviction task to the timer. Tasks that are added with a call to this method *must* callcancel(TimerTask)
to cancel the task to prevent memory and/or thread leaks in application server environments.- Parameters:
task
- Task to be scheduleddelay
- Delay in milliseconds before task is executedperiod
- Time in milliseconds between executions
-
cancel
Remove the specified eviction task from the timer.- Parameters:
task
- Task to be scheduled
-