public Entry getValueAndIsObject(Region<?, ?> region, Object key, Object callbackArg,
      ServerConnection servConn) {

    // Region.Entry entry;
    String regionName = region.getFullPath();
    if (servConn != null) {
      servConn.setModificationInfo(true, regionName, key);
    }

    final ClientProxyMembershipID id = servConn == null ? null : servConn.getProxyID();
    final VersionTagHolder versionHolder = new VersionTagHolder();
    Object data =
        ((LocalRegion) region).get(key, callbackArg, true, true, true, id, versionHolder, true);
    final VersionTag<?> versionTag = versionHolder.getVersionTag();

    // If the value in the VM is a CachedDeserializable,
    // get its value. If it is Token.REMOVED, Token.DESTROYED,
    // Token.INVALID, or Token.LOCAL_INVALID
    // set it to null. If it is NOT_AVAILABLE, get the value from
    // disk. If it is already a byte[], set isObject to false.
    boolean wasInvalid = false;
    boolean isObject = true;
    if (data instanceof CachedDeserializable) {
      CachedDeserializable cd = (CachedDeserializable) data;
      if (!cd.isSerialized()) {
        // it is a byte[]
        isObject = false;
        data = cd.getDeserializedForReading();
      } else {
        data = cd.getValue();
      }
    } else if (data == Token.REMOVED_PHASE1 || data == Token.REMOVED_PHASE2
        || data == Token.DESTROYED) {
      data = null;
    } else if (data == Token.INVALID || data == Token.LOCAL_INVALID) {
      data = null; // fix for bug 35884
      wasInvalid = true;
    } else if (data instanceof byte[]) {
      isObject = false;
    }
    boolean keyNotPresent = !wasInvalid && (data == null || data == Token.TOMBSTONE);
    return new Entry(data, isObject, keyNotPresent, versionTag);
  }
This method was added so that Get70 could, by default, call getEntryRetained, but the subclass
GetEntry70 could override it and call getValueAndIsObject. If we ever get to the point that no
code needs to call getValueAndIsObject then this method can go away.
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/Get70.java