@Override
    public void release(final T t, final boolean prune) {
        if (t == null) {
            throw new IllegalArgumentException("Can not return a null item to the pool");
        }
        if (closed) {
            close(t);
            return;
        }

        if (prune) {
            close(t);
        } else {
            available.addLast(t);
        }

        releasePermit();
    }
@Override
    public void release(final T t, final boolean prune) {
        if (t == null) {
            throw new IllegalArgumentException("Can not return a null item to the pool");
        }
        if (closed) {
            close(t);
            return;
        }

        if (prune) {
            close(t);
        } else {
            available.addLast(t);
        }

        releasePermit();
    }
@ Override public void release ( final T t , final boolean prune ) { if ( t == null ) { throw new IllegalArgumentException ( "Can not return a null item to the pool" ) ; } if ( closed ) { close ( t ) ; return ; } if ( prune ) { close ( t ) ; } else { available . addLast ( t ) ; } releasePermit ( ) ; }
call done when you are done with an object from the pool if there is room and the object is ok will get added

@param t     item to return to the pool
@param prune true if the item should be closed, false if it should be put back in the pool
call done when you are done with an object from the pool if there is room and the object is ok will get added