Package org.apache.tomcat.dbcp.pool2
Class PoolUtils
java.lang.Object
org.apache.tomcat.dbcp.pool2.PoolUtils
This class consists exclusively of static methods that operate on or return
ObjectPool or KeyedObjectPool related interfaces.
- Since:
- 2.0
-
Field Summary
-
Constructor Summary
ConstructorDescriptionPoolUtils instances should NOT be constructed in standard programming. -
Method Summary
Modifier and TypeMethodDescriptioncheckMinIdle
(KeyedObjectPool<K, V> keyedPool, Collection<K> keys, int minIdle, long period) Periodically check the idle object count for each key in theCollection keys
in the keyedPool.static <K,
V> TimerTask checkMinIdle
(KeyedObjectPool<K, V> keyedPool, K key, int minIdle, long period) Periodically check the idle object count for the key in the keyedPool.static <T> TimerTask
checkMinIdle
(ObjectPool<T> pool, int minIdle, long period) Periodically check the idle object count for the pool.static void
Should the supplied Throwable be re-thrown (eg if it is an instance of one of the Throwables that should never be swallowed).static <K,
V> void prefill
(KeyedObjectPool<K, V> keyedPool, Collection<K> keys, int count) Deprecated.static <K,
V> void prefill
(KeyedObjectPool<K, V> keyedPool, K key, int count) Deprecated.static <T> void
prefill
(ObjectPool<T> pool, int count) Deprecated.static <K,
V> KeyedPooledObjectFactory<K, V> synchronizedKeyedPooledFactory
(KeyedPooledObjectFactory<K, V> keyedFactory) Returns a synchronized (thread-safe) KeyedPooledObjectFactory backed by the specified KeyedPoolableObjectFactory.static <T> PooledObjectFactory<T>
synchronizedPooledFactory
(PooledObjectFactory<T> factory) Returns a synchronized (thread-safe) PooledObjectFactory backed by the specified PooledObjectFactory.
-
Field Details
-
MSG_NULL_KEY
- See Also:
-
MSG_NULL_KEYS
- See Also:
-
-
Constructor Details
-
PoolUtils
public PoolUtils()PoolUtils instances should NOT be constructed in standard programming. Instead, the class should be used procedurally: PoolUtils.adapt(aPool);. This constructor is public to permit tools that require a JavaBean instance to operate.
-
-
Method Details
-
checkRethrow
Should the supplied Throwable be re-thrown (eg if it is an instance of one of the Throwables that should never be swallowed). Used by the pool error handling for operations that throw exceptions that normally need to be ignored.- Parameters:
t
- The Throwable to check- Throws:
ThreadDeath
- if that is passed inVirtualMachineError
- if that is passed in
-
checkMinIdle
public static <T> TimerTask checkMinIdle(ObjectPool<T> pool, int minIdle, long period) throws IllegalArgumentException Periodically check the idle object count for the pool. At most one idle object will be added per period. If there is an exception when callingObjectPool.addObject()
then no more checks will be performed.- Type Parameters:
T
- the type of objects in the pool- Parameters:
pool
- the pool to check periodically.minIdle
- if theObjectPool.getNumIdle()
is less than this then add an idle object.period
- the frequency to check the number of idle objects in a pool, seeTimer.schedule(TimerTask, long, long)
.- Returns:
- the
TimerTask
that will periodically check the pools idle object count. - Throws:
IllegalArgumentException
- whenpool
isnull
or whenminIdle
is negative or whenperiod
isn't valid forTimer.schedule(TimerTask, long, long)
-
checkMinIdle
public static <K,V> TimerTask checkMinIdle(KeyedObjectPool<K, V> keyedPool, K key, int minIdle, long period) throws IllegalArgumentExceptionPeriodically check the idle object count for the key in the keyedPool. At most one idle object will be added per period. If there is an exception when callingKeyedObjectPool.addObject(Object)
then no more checks for that key will be performed.- Type Parameters:
K
- the type of the pool keyV
- the type of pool entries- Parameters:
keyedPool
- the keyedPool to check periodically.key
- the key to check the idle count of.minIdle
- if theKeyedObjectPool.getNumIdle(Object)
is less than this then add an idle object.period
- the frequency to check the number of idle objects in a keyedPool, seeTimer.schedule(TimerTask, long, long)
.- Returns:
- the
TimerTask
that will periodically check the pools idle object count. - Throws:
IllegalArgumentException
- whenkeyedPool
,key
isnull
or whenminIdle
is negative or whenperiod
isn't valid forTimer.schedule(TimerTask, long, long)
.
-
checkMinIdle
public static <K,V> Map<K,TimerTask> checkMinIdle(KeyedObjectPool<K, V> keyedPool, Collection<K> keys, int minIdle, long period) throws IllegalArgumentExceptionPeriodically check the idle object count for each key in theCollection keys
in the keyedPool. At most one idle object will be added per period.- Type Parameters:
K
- the type of the pool keyV
- the type of pool entries- Parameters:
keyedPool
- the keyedPool to check periodically.keys
- a collection of keys to check the idle object count.minIdle
- if theKeyedObjectPool.getNumIdle(Object)
is less than this then add an idle object.period
- the frequency to check the number of idle objects in a keyedPool, seeTimer.schedule(TimerTask, long, long)
.- Returns:
- a
Map
of key andTimerTask
pairs that will periodically check the pools idle object count. - Throws:
IllegalArgumentException
- whenkeyedPool
,keys
, or any of the values in the collection isnull
or whenminIdle
is negative or whenperiod
isn't valid forTimer.schedule(TimerTask, long, long)
.- See Also:
-
prefill
@Deprecated public static <T> void prefill(ObjectPool<T> pool, int count) throws Exception, IllegalArgumentException Deprecated.- Type Parameters:
T
- the type of objects in the pool- Parameters:
pool
- the pool to prefill.count
- the number of idle objects to add.- Throws:
Exception
- whenObjectPool.addObject()
fails.IllegalArgumentException
- whenpool
isnull
.
-
prefill
@Deprecated public static <K,V> void prefill(KeyedObjectPool<K, V> keyedPool, K key, int count) throws Exception, IllegalArgumentExceptionDeprecated.- Type Parameters:
K
- the type of the pool keyV
- the type of pool entries- Parameters:
keyedPool
- the keyedPool to prefill.key
- the key to add objects for.count
- the number of idle objects to add forkey
.- Throws:
Exception
- whenKeyedObjectPool.addObject(Object)
fails.IllegalArgumentException
- whenkeyedPool
orkey
isnull
.
-
prefill
@Deprecated public static <K,V> void prefill(KeyedObjectPool<K, V> keyedPool, Collection<K> keys, int count) throws Exception, IllegalArgumentExceptionDeprecated.CallsKeyedObjectPool.addObject(Object)
onkeyedPool
with each key inkeys
forcount
number of times. This has the same effect as callingprefill(KeyedObjectPool, Object, int)
for each key in thekeys
collection.- Type Parameters:
K
- the type of the pool keyV
- the type of pool entries- Parameters:
keyedPool
- the keyedPool to prefill.keys
-Collection
of keys to add objects for.count
- the number of idle objects to add for eachkey
.- Throws:
Exception
- whenKeyedObjectPool.addObject(Object)
fails.IllegalArgumentException
- whenkeyedPool
,keys
, or any value inkeys
isnull
.- See Also:
-
synchronizedPooledFactory
Returns a synchronized (thread-safe) PooledObjectFactory backed by the specified PooledObjectFactory.- Type Parameters:
T
- the type of objects in the pool- Parameters:
factory
- the PooledObjectFactory to be "wrapped" in a synchronized PooledObjectFactory.- Returns:
- a synchronized view of the specified PooledObjectFactory.
-
synchronizedKeyedPooledFactory
public static <K,V> KeyedPooledObjectFactory<K,V> synchronizedKeyedPooledFactory(KeyedPooledObjectFactory<K, V> keyedFactory) Returns a synchronized (thread-safe) KeyedPooledObjectFactory backed by the specified KeyedPoolableObjectFactory.- Type Parameters:
K
- the type of the pool keyV
- the type of pool entries- Parameters:
keyedFactory
- the KeyedPooledObjectFactory to be "wrapped" in a synchronized KeyedPooledObjectFactory.- Returns:
- a synchronized view of the specified KeyedPooledObjectFactory.
-
KeyedObjectPool.addObjects(Collection, int)
.