# Class DefaultEvictionPolicy<T>

java.lang.Object
org.apache.tomcat.dbcp.pool2.impl.DefaultEvictionPolicy<T>

Type Parameters:
  `T` - the type of objects in the pool.

All Implemented Interfaces:
  `EvictionPolicy<T>`

public class DefaultEvictionPolicy<T> extends Object implements EvictionPolicy<T>
Provides the default implementation of `EvictionPolicy` used by the pools.

Objects will be evicted if the following conditions are met:

- The object has been idle longer than `BaseGenericObjectPool.getMinEvictableIdleDuration()` / `BaseGenericObjectPool.getMinEvictableIdleDuration()`
- There are more than `GenericObjectPool.getMinIdle()` / `GenericKeyedObjectPoolConfig.getMinIdlePerKey()` idle objects in the pool and the object has been idle for longer than `BaseGenericObjectPool.getSoftMinEvictableIdleDuration()` / `BaseGenericObjectPool.getSoftMinEvictableIdleDuration()`

This class is immutable and thread-safe.

Since:
  2.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultEvictionPolicy()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `evict(EvictionConfig config, PooledObject<T> underTest, int idleCount)`
  Tests if an idle object in the pool should be evicted or not.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DefaultEvictionPolicy

    public DefaultEvictionPolicy()
    Constructs a new instance.

- ## Method Details

  - ### evict

    public boolean evict(EvictionConfig config, PooledObject<T> underTest, int idleCount)
    Description copied from interface: `EvictionPolicy`
    Tests if an idle object in the pool should be evicted or not.
    Specified by:
      `evict` in interface `EvictionPolicy<T>`
    Parameters:
      `config` - The pool configuration settings related to eviction
      `underTest` - The pooled object being tested for eviction
      `idleCount` - The current number of idle objects in the pool including the object under test
    Returns:
      `true` if the object should be evicted, otherwise `false`