@NotNull
  public ApplicationMode getApplicationMode() {
    if (wasForcedToApplyOnTheSameThread && _initialApplicationMode == ApplicationMode.AnotherThread) {
      //it's usually too late to try to apply under the same read lock
      return ApplicationMode.SameThreadOutsideReadLock;
    }
    return _initialApplicationMode;
  }
@NotNull
  public ApplicationMode getApplicationMode()