@Override
 public void shutdown(boolean fromShutdownHook) {
   stateGuard.writeLock().lock();
   try {
     state = state.shutdown();
     gcTimer.cancel();
     lockLeaseTimer.cancel();
     remoteLockManager.shutdown();
     runningCondition.signalAll();
     LockStateNode.shutdown();
   } finally {
     stateGuard.writeLock().unlock();
   }
 }