@Test public void testRefCount() throws InterruptedException, ExecutionException { assertEquals(cut.getRefCount(), 0); cut.registerReference(); assertEquals(cut.getRefCount(), 1); assertEquals(cut.getRefCount(), 1); cut.releaseReference(); assertEquals(cut.getRefCount(), 0); // other threads must each increment the ref count final Runnable registerReference = new Runnable() { @Override public void run() { cut.registerReference(); } }; executor.submit(registerReference).get(); assertEquals(cut.getRefCount(), 1); alternateExecutor.submit(registerReference).get(); assertEquals(cut.getRefCount(), 2); // we (no ref registered) must not be able to decrement the ref count cut.releaseReference(); assertEquals(cut.getRefCount(), 2); } }
if ( msmSession.releaseReference() > 0 ) { if(_log.isDebugEnabled()) _log.debug( "Session " + sessionId + " is still used by another request, skipping backup and (optional) lock handling/release." );
if ( msmSession.releaseReference() > 0 ) { if(_log.isDebugEnabled()) _log.debug( "Session " + sessionId + " is still used by another request, skipping backup and (optional) lock handling/release." );
if ( msmSession.releaseReference() > 0 ) { if(_log.isDebugEnabled()) _log.debug( "Session " + sessionId + " is still used by another request, skipping backup and (optional) lock handling/release." );
if ( msmSession.releaseReference() > 0 ) { if(_log.isDebugEnabled()) _log.debug( "Session " + sessionId + " is still used by another request, skipping backup and (optional) lock handling/release." );