public String expensiveToString() {
    Object mbr;
    try (ByteArrayDataInput byteArrayDataInput = new ByteArrayDataInput(membershipID)) {
      mbr = InternalDistributedMember.readEssentialData(byteArrayDataInput);
    } catch (Exception e) {
      mbr = membershipID; // punt and use the bytes
    }

    return "ThreadId[" + mbr + "; thread " + toDisplayString(threadID) + "]";
  }
Extracts the field bits from the value.

@param val the value
@return the field
geode-core/src/main/java/org/apache/geode/internal/cache/ha/ThreadIdentifier.java