# 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()`

## 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 java.lang.Object

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

## Constructor Details

### DefaultEvictionPolicy

public DefaultEvictionPolicy()

## 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`