code: public void close()
  	{
  		synchronized (closeLock)
  		{
  			if (closed)
  				return;		
  			closed = true;
  		}
  		
  		synchronized (this)
  		{
  			Iterator<T> allObjects = all.iterator();
  			while (allObjects.hasNext())
  			{
  				T poolObject = allObjects.next();
  				internalDestroyPoolObject(poolObject);
  			}
  			
  			all.clear();
  			available.clear();
  			
  			// Unlock all waiting threads
  			notifyAll();
  		}
  	}
docs: Close the pool, destroying all objects