docs: public void reconstitute(
      MessageProcessor processor, 
      HashMap durableSubscriptionsTable,
      int startMode) throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "reconstitute", 
          new Object[] { processor, durableSubscriptionsTable, Integer.valueOf(startMode) });
          
      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
        SibTr.debug(tc, "Reconstituting MQLink " + getName());
     
      try 
      {
        super.reconstitute(processor, durableSubscriptionsTable, startMode);
  
        // Check Removed.
  //      if(!isToBeDeleted())
  //      {                
          // There should only be one MQLinkStateItemStream in the MQLinkLocalizationItemStream.
          if (_mqLinkStateItemStreamId != 0)
          {
            _mqLinkStateItemStream 
              = (ItemStream) findById(_mqLinkStateItemStreamId);
               
            // A MQLinkHandler must have a MQLinkStateItemStream as long as the destination
            // is not in delete state.  The ME may have restarted and the item stream already 
            // deleted
            if (_mqLinkStateItemStream == null && !isToBeDeleted())
            {
              SIResourceException e =
                new SIResourceException(
                  nls.getFormattedMessage(
                    "LINK_HANDLER_RECOVERY_ERROR_CWSIP0049",
                    new Object[] { getName() },
                    null));
                  
              SibTr.error(tc, "LINK_HANDLER_RECOVERY_ERROR_CWSIP0049", new Object[] { getName() });
        
              FFDCFilter.processException(
                e,
                "com.ibm.ws.sib.processor.impl.MQLinkHandler.reconstitute",
                "1:270:1.71",
                this);
        
              SibTr.exception(tc, e);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
                SibTr.exit(tc, "reconstitute", e);
              throw e;
            }
          }
    
          // There should only be one MQLinkStateItemStream in the MQLinkLocalizationItemStream.
          NonLockingCursor cursor = newNonLockingItemStreamCursor(
            new ClassEqualsFilter(MQLinkPubSubBridgeItemStream.class));
          _mqLinkPubSubBridgeItemStream = (MQLinkPubSubBridgeItemStream)cursor.next();
          
          // A MQLinkLocalizationItemStream should not be in the DestinationManager
          // without a MQLinkStateItemStream as long as the destination
          // is not in delete state.  The ME may have restarted and the item stream already 
          // deleted
          if (_mqLinkPubSubBridgeItemStream == null && !isToBeDeleted())
          {
            SIResourceException e =
               new SIResourceException(
                nls.getFormattedMessage(
                  "LINK_HANDLER_RECOVERY_ERROR_CWSIP0049",
                  new Object[] { getName() },
                  null));
  
            SibTr.error(tc, "LINK_HANDLER_RECOVERY_ERROR_CWSIP0049", new Object[] { getName() });
      
            FFDCFilter.processException(
              e,
              "com.ibm.ws.sib.processor.impl.MQLinkHandler.reconstitute",
              "1:303:1.71",
              this);
      
            SibTr.exception(tc, e);
            if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
              SibTr.exit(tc, "reconstitute", e);
            throw e;
          }
        
          cursor.finished();
  /*      }
        else
        {
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
            SibTr.debug(tc, "MQLink marked to be deleted, bypass state stream integrity checks");
        }*/          
      }
      catch (Exception e)
      {
        FFDCFilter.processException(
          e,
          "com.ibm.ws.sib.processor.impl.MQLinkHandler.reconstitute",
          "1:325:1.71",
          this);  
          
        SibTr.exception(tc, e);     
             
        // At the moment, any exception we get while reconstituting means that we
        // want to mark the destination as corrupt.
        _isCorruptOrIndoubt = true;        
             
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.exit(tc, "reconstitute", e);
          
        throw new SIResourceException(e);
      }
        
      /*
       * We should have completed all restart message store operations for this
       * link by this point.
       */
       
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "reconstitute");           
    }