Save This Page
Home » commons-pool-1.4-src » org.apache.commons » pool » [javadoc | source]
org.apache.commons.pool
public interface: ObjectPool [javadoc | source]

All Known Implementing Classes:
    BaseObjectPool, SynchronizedObjectPool, CheckedObjectPool, ErodingObjectPool, SoftReferenceObjectPool, ObjectPoolAdaptor, GenericObjectPool, StackObjectPool

A pooling interface.

ObjectPool defines a trivially simple pooling interface. The only required methods are borrowObject , returnObject and invalidateObject .

Example of use:

 Object obj = null;

try {
obj = pool.borrowObject();
//...use the object...
} catch(Exception e) {
// invalidate the object
pool.invalidateObject(obj);
// do not return the object to the pool twice
obj = null;
} finally {
// make sure the object is returned to the pool
if(null != obj) {
pool.returnObject(obj);
}
}

See BaseObjectPool for a simple base implementation.

Method from org.apache.commons.pool.ObjectPool Summary:
addObject,   borrowObject,   clear,   close,   getNumActive,   getNumIdle,   invalidateObject,   returnObject,   setFactory
Method from org.apache.commons.pool.ObjectPool Detail:
 public  void addObject() throws Exception, UnsupportedOperationException, IllegalStateException
    Create an object using the factory or other implementation dependent mechanism, passivate it, and then place it in the idle object pool. addObject is useful for "pre-loading" a pool with idle objects. (Optional operation).
 public Object borrowObject() throws Exception, NoSuchElementException, IllegalStateException
    Obtains an instance from this pool.

    Instances returned from this method will have been either newly created with makeObject or will be a previously idle object and have been activated with activateObject and then validated with validateObject .

    By contract, clients must return the borrowed instance using returnObject , invalidateObject , or a related method as defined in an implementation or sub-interface.

    The behaviour of this method when the pool has been exhausted is not strictly specified (although it may be specified by implementations). Older versions of this method would return null to indicate exhaustion, newer versions are encouraged to throw a NoSuchElementException .

 public  void clear() throws Exception, UnsupportedOperationException
    Clears any objects sitting idle in the pool, releasing any associated resources (optional operation). Idle objects cleared must be destroyed .
 public  void close() throws Exception
 public int getNumActive() throws UnsupportedOperationException
    Return the number of instances currently borrowed from this pool (optional operation). Returns a negative value if this information is not available.
 public int getNumIdle() throws UnsupportedOperationException
    Return the number of instances currently idle in this pool (optional operation). This may be considered an approximation of the number of objects that can be borrowed without creating any new instances. Returns a negative value if this information is not available.
 public  void invalidateObject(Object obj) throws Exception
    Invalidates an object from the pool By contract, obj must have been obtained using borrowObject or a related method as defined in an implementation or sub-interface.

    This method should be used when an object that has been borrowed is determined (due to an exception or other problem) to be invalid.

 public  void returnObject(Object obj) throws Exception
    Return an instance to the pool. By contract, obj must have been obtained using borrowObject or a related method as defined in an implementation or sub-interface.
 public  void setFactory(PoolableObjectFactory factory) throws UnsupportedOperationException, IllegalStateException
    Sets the factory this pool uses to create new instances (optional operation). Trying to change the factory after a pool has been used will frequently throw an UnsupportedOperationException . It is up to the pool implementation to determine when it is acceptable to call this method.