docs: public void readExternal(java.io.ObjectInput objectInput
                      )
                                      throws java.io.IOException
      {
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this, cclass
                          , "readExternal"
                          , "objectInput=" + objectInput + "(java.io.ObjectInput)"
                              );
  
          byte version = objectInput.readByte();
          if (Tracing.isAnyTracingEnabled() && trace.isDebugEnabled())
              trace.debug(cclass,
                          "readExternal",
                          "version=" + version + "(byte)");
  
          objectStoreIdentifier = objectInput.readInt();
          storedObjectIdentifier = objectInput.readLong();
  
          // Re-establish the objectStore storing the ManagedObject.
          try {
              objectStore = ((ManagedObjectInputStream) objectInput).objectManagerState.getObjectStore(objectStoreIdentifier);
  
          } catch (ObjectManagerException exception) {
              // No FFDC Code Needed.
              ObjectManager.ffdc.processException(this, cclass, "readExternal", exception, "1:488:1.14");
              java.io.IOException ioException = new java.io.IOException();
  
              // We cannot always invoke initCause, because JCLRM does not support this. 
              // ioException.initCause(exception);
              try {
                  java.lang.reflect.Method initCauseMethod = Throwable.class.getMethod("initCause",
                                                                                       new Class[] { Throwable.class });
                  initCauseMethod.invoke(this,
                                         new Object[] { exception });
              } catch (Exception exception2) {
                  // No FFDC Code Needed.
                  if (Tracing.isAnyTracingEnabled() && trace.isEventEnabled())
                      trace.event(this,
                                  cclass,
                                  "readExternal",
                                  exception2);
              }
  
              if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
                  trace.exit(this, cclass
                             , "readExternal"
                             , new Object[] { exception, new Integer(objectStoreIdentifier) }
                                  );
              throw ioException;
          } // catch (ObjectManagerException exception).
  
          // ManagedObjectInputStream resolves the Token constructed into the definitive token.
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this, cclass
                         , "readExternal"
                              );
      }