public void release(){
  if (acquireCount.get() == 0) {
    throw new RuntimeException("The shared object was not acquired before.");
  }
  if (acquireCount.decrementAndGet() == 0) {
    checkRelease();
  }
}

public void release ( ) { if ( acquireCount . get ( ) == 0 ) { throw new RuntimeException ( "The shared object was not acquired before." ) ; } if ( acquireCount . decrementAndGet ( ) == 0 ) { checkRelease ( ) ; } }
release previously acquired shared object . if the so is non - persistent , no more clients are connected the so isn ' t acquired any more , the data is released .
