docs: private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException {
          final boolean isTraceOn = svLogger.isLoggable(Level.FINER);
          if (isTraceOn)
              svLogger.entering(CLASS_NAME, "readObject");
  
          in.defaultReadObject();
          byte[] ec = new byte[Constants.EYE_CATCHER_LENGTH];
          byte[] eyecatcher = Constants.CLIENT_ASYNC_RESULT_EYE_CATCHER;
          short incoming_platform;
          short incoming_vid;
  
          int bytesRead = 0;
          for (int offset = 0; offset < Constants.EYE_CATCHER_LENGTH; offset += bytesRead) {
              bytesRead = in.read(ec, offset, Constants.EYE_CATCHER_LENGTH - offset);
              if (bytesRead == -1) {
                  throw new IOException("end of input stream while reading eye catcher");
              }
          }
  
          // validate that the eyecatcher matches
          for (int i = 0; i < eyecatcher.length; i++) {
              if (eyecatcher[i] != ec[i]) {
                  String eyeCatcherString = Arrays.toString(ec);
                  throw new IOException("Invalid eye catcher '" + eyeCatcherString + "' in ClientAsyncResult input stream");
              }
          }
          incoming_platform = in.readShort();
          incoming_vid = in.readShort();
  
          // The server uses a custom _RemoteAsyncResult_Tie to ensure that
          // _RemoteAsyncResult_Stub is sent instead of
          // _RemoteAsyncResultExtended_Stub, which won't exist on old clients.
          ivServer = (RemoteAsyncResult) PortableRemoteObject.narrow(in.readObject(), RemoteAsyncResult.class);
          ivBusinessRmiRemote = in.readBoolean();
  
          // F16043 - If the client has disabled retries, then don't use
          // RemoteAsyncResultExtended.  Also, there is no reason to use retries
          // for colocated stubs.
          ivUseServerExtended = ivServerExtended &&
                                !DisableAsyncResultRetries &&
                                !Util.isLocal((Stub) ivServer);
  
          if (isTraceOn)
              svLogger.exiting(CLASS_NAME, "readObject",
                               toString() +
                                               ", platform=" + incoming_platform +
                                               ", version=" + incoming_vid +
                                               ", extended=" + ivServerExtended +
                                               ", server=" + ivServer);
      }