public static void copy(Object o, Object copy) {
    // This method is only called by CopyHelper which is public and does not require that a Cache
    // exists.
    // So we need to call getInstance instead of getExisting.
    InternalCache cache = GemFireCacheImpl.getInstance();
    if (cache == null) {
      return;
    }
    TypeRegistry tr = cache.getPdxRegistry();
    PdxUnreadData ud = tr.getUnreadData(o);
    if (ud != null && !ud.isEmpty()) {
      tr.putUnreadData(copy, ud);
    }
  }
If o has unread data then add that unread data to copy.
geode-core/src/main/java/org/apache/geode/pdx/internal/PdxUnreadData.java