code: @Override
      public void deactivate() throws InterruptedException, CouldNotPerformException {
          synchronized (maintainerLock) {
              try {
                  verifyMaintainability();
                  validateInitialization();
              } catch (InvalidStateException ex) {
                  // was never initialized!
                  return;
              }
              if (connectionState != RECONNECTING) {
                  skipSyncTasks();
                  setConnectionState(DISCONNECTED);
                  if (pingTask != null && !pingTask.isDone()) {
                      pingTask.cancel(true);
                  }
              }
              if (listenerWatchDog != null) {
                  listenerWatchDog.deactivate();
              }
  
              if (remoteServerWatchDog != null) {
                  remoteServerWatchDog.deactivate();
              }
          }
          synchronized (connectionMonitor) {
              connectionMonitor.notifyAll();
          }
      }
docs: {@inheritDoc}
  
  @throws InterruptedException     {@inheritDoc}
  @throws CouldNotPerformException {@inheritDoc}