docs: public void restore(
      ObjectInputStream ois, int dataVersion)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(
          tc, "restore", new Object[] { ois, new Integer(dataVersion) });
  
      try
      {
        HashMap hm = (HashMap)ois.readObject(); 
        
        _topicSpaceUuid = new SIBUuid12((String)hm.get("iTopicSpace"));
        _topic = (String)hm.get("iTopic"); 
        _foreignTopicSpaceName = (String)hm.get("iForeignTopicSpaceName"); 
        // Careful with these next attributes. They were added in 6.0.1
        if(hm.containsKey("isForeignSecuredProxy"))
        {
          _foreignSecuredProxy = ((Boolean) hm.get("isForeignSecuredProxy")).booleanValue();
          _meSubUserId = (String) hm.get("MESubUserId");
        }       
      }
      catch (Exception e) 
      {
        FFDCFilter.processException(
          e,
          "com.ibm.ws.sib.processor.proxyhandler.MESubscription.restore",
          "1:792:1.55",
          this);
  
        SibTr.exception(tc, e);
        
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "restore", "SIErrorException");
        
        throw new SIErrorException(
          nls.getFormattedMessage(
            "INTERNAL_MESSAGING_ERROR_CWSIP0002",
            new Object[] {
              "com.ibm.ws.sib.processor.proxyhandler.MESubscription",
              "1:804:1.55",
              e },
            null),
          e);
      }
      
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "restore");
    }