src/main/java/org/vibur/dbcp/util/ViburUtils.java
public static String getPoolName(ViburConfig config) {
        BasePool pool = config.getPool();
        boolean initialState = pool.isTerminated();
        String result = config.getName() + '@' + toHexString(config.hashCode())
                + '(' + pool.taken() + '/' + pool.remainingCreated() + '/' + pool.maxSize()
                + '/' + (!initialState ? 'w' : 't')  // poolState: w == working, t == terminated
                + '/' + (Thread.currentThread().isInterrupted() ? 'i' : 'n') + ')';
        if (initialState == pool.isTerminated()) { // make sure the pool state has not changed in the meantime
            return result;
        }
        return getPoolName(config); // this is one level of recursion only, pool state changes only once
    }
public static String getPoolName(ViburConfig config) {
        BasePool pool = config.getPool();
        boolean initialState = pool.isTerminated();
        String result = config.getName() + '@' + toHexString(config.hashCode())
                + '(' + pool.taken() + '/' + pool.remainingCreated() + '/' + pool.maxSize()
                + '/' + (!initialState ? 'w' : 't')  // poolState: w == working, t == terminated
                + '/' + (Thread.currentThread().isInterrupted() ? 'i' : 'n') + ')';
        if (initialState == pool.isTerminated()) { // make sure the pool state has not changed in the meantime
            return result;
        }
        return getPoolName(config); // this is one level of recursion only, pool state changes only once
    }
public static String getPoolName ( ViburConfig config ) { BasePool pool = config . getPool ( ) ; boolean initialState = pool . isTerminated ( ) ; String result = config . getName ( ) + ' ' + toHexString ( config . hashCode ( ) ) + ' ' + pool . taken ( ) + ' ' + pool . remainingCreated ( ) + ' ' + pool . maxSize ( ) + ' ' + ( ! initialState ? ' ' : ' ' ) // poolState: w == working, t == terminated
 + ' ' + ( Thread . currentThread ( ) . isInterrupted ( ) ? ' ' : ' ' ) + ' ' ; if ( initialState == pool . isTerminated ( ) ) { // make sure the pool state has not changed in the meantime
 return result ; } return getPoolName ( config ) ; // this is one level of recursion only, pool state changes only once
 }
Returns the extended pool name formatted as:
<blockquote>{@code poolName@hashCode(currentlyTakenConns/remainingCreatedConns/poolMaxSize/poolState/threadInterruptedStatus)}</blockquote>
For example, {@code p1@2db7a79b(1/1/10/w/n)}.

@param config the Vibur config
Returns the extended pool name formatted as : <blockquote > { @code poolName@hashCode ( currentlyTakenConns / remainingCreatedConns / poolMaxSize / poolState / threadInterruptedStatus ) } < / blockquote > For example { @code p1@2db7a79b ( 1 / 1 / 10 / w / n ) } .