docs: @Override
      public synchronized void close() {
  
          if (isClosed) {
              return;
          }
  
          rollback(false);
  
          try {
              database.logger.writeToLog(this, Tokens.T_DISCONNECT);
          } catch (HsqlException e) {}
  
          sessionData.closeAllNavigators();
          sessionData.persistentStoreCollection.clearAllTables();
          sessionData.closeResultCache();
          database.compiledStatementManager.removeSession(sessionId);
          database.sessionManager.removeSession(this);
          database.closeIfLast();
  
          database                  = null;
          user                      = null;
          rowActionList             = null;
          sessionContext.savepoints = null;
          intConnection             = null;
          sessionContext            = null;
          lastIdentity              = null;
          isClosed                  = true;
      }