docs: public final void open(AccessToken accessToken, StatusCallback callback) {
          synchronized (this.lock) {
              if (pendingAuthorizationRequest != null) {
                  throw new UnsupportedOperationException(
                          "Session: an attempt was made to open a session that has a pending request.");
              }
  
              if (state.isClosed()) {
                  throw new UnsupportedOperationException(
                          "Session: an attempt was made to open a previously-closed session.");
              } else if (state != SessionState.CREATED && state != SessionState.CREATED_TOKEN_LOADED) {
                  throw new UnsupportedOperationException(
                          "Session: an attempt was made to open an already opened session.");
              }
  
              if (callback != null) {
                  addCallback(callback);
              }
  
              this.tokenInfo = accessToken;
  
              if (this.tokenCachingStrategy != null) {
                  this.tokenCachingStrategy.save(accessToken.toCacheBundle());
              }
  
              final SessionState oldState = state;
              state = SessionState.OPENED;
              this.postStateChange(oldState, state, null);
          }
  
          autoPublishAsync();
      }