you must call this or #mayberefreshblocking , periodically , if you want that #acquire will return refreshed instances . threads : it 's fine for more than one thread to call this at once . only the first thread will attempt the refresh ; subsequent threads will see that another thread is already handling refresh and will return immediately . note that this means if another thread is already refreshing then subsequent threads will return right away without waiting for the refresh to complete . if this method returns true it means the calling thread either refreshed or that there were no changes to refresh . if it returns false it means another thread is currently refreshing . concode_field_sep String REFERENCE_MANAGER_IS_CLOSED_MSG concode_elem_sep G current concode_elem_sep Lock refreshLock concode_elem_sep List<RefreshListener> refreshListeners concode_field_sep void release concode_elem_sep void notifyRefreshListenersBefore concode_elem_sep void removeListener concode_elem_sep G acquire concode_elem_sep void doMaybeRefresh concode_elem_sep void afterMaybeRefresh concode_elem_sep void beforeRefresh concode_elem_sep void maybeRefreshBlocking concode_elem_sep void decRef concode_elem_sep void ensureOpen concode_elem_sep G refreshIfNeeded concode_elem_sep boolean tryIncRef concode_elem_sep void notifyRefreshListenersRefreshed concode_elem_sep void afterRefresh concode_elem_sep int getRefCount concode_elem_sep void close concode_elem_sep void afterClose concode_elem_sep void swapReference concode_elem_sep void addListener
boolean function ( ) { ensureOpen ( ) ; final boolean loc0 = refreshLock . tryLock ( ) ; if ( loc0 ) { try { doMaybeRefresh ( ) ; } finally { refreshLock . unlock ( ) ; } } return loc0 ; }