this should always be followed by a try/finally concode_field_sep Logger log concode_elem_sep Queue<T> pool concode_elem_sep AtomicLong allocatedResources concode_elem_sep int maxPoolSize concode_field_sep void returnResource concode_elem_sep void cleanupForReturnToPool concode_elem_sep void shutdownPooling concode_elem_sep void cleanupForDiscard concode_elem_sep long getAllocatedResources concode_elem_sep int getMaxPoolSize concode_elem_sep void discardFromPool concode_elem_sep void discardCurrentPool concode_elem_sep V runWithPooledResource concode_elem_sep V runWithPooledResource concode_elem_sep boolean returnToQueue concode_elem_sep void logPoolStats concode_elem_sep T createNewPooledResource
T function ( ) { T loc0 = pool . poll ( ) ; if ( loc0 == null ) { loc0 = createNewPooledResource ( ) ; Preconditions . checkNotNull ( loc0 , "srini_string" ) ; allocatedResources . incrementAndGet ( ) ; } logPoolStats ( ) ; return loc0 ; }