@NotNull
  public String name() {
    checkValid();
    if (myName == null) {
      try {
        myName = getThreadReference().name();
        LOG.assertTrue(myName != null);
      }
      catch (ObjectCollectedException ignored) {
        myName = "";
      }
      catch (IllegalThreadStateException ignored) {
        myName = "zombie";
      }
    }
    return myName;
  }
@NotNull
  public String name()