docs: @Override
      public void eventPostCommitRemove(Transaction transaction) throws SevereMessageStoreException
      {
          super.eventPostCommitRemove(transaction);
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "eventPostCommitRemove", transaction);
  
          if (failedInitInRestore)
          {
              initialiseNonPersistent(true);
          }
  
          dereferenceControlAdapter();
  
          try
          {
              // TODO I'm curious why we have five slots here as there should only ever be three things registered
              // (the ConsumerDispatcher, PtoPMessageItemStream (or SubscriptionItemStream) and optionally a
              // JSLocalConsumerPoint).
              if (POST_COMMIT_REMOVE_5 != null)
              {
                  POST_COMMIT_REMOVE_5.messageEventOccurred(MessageEvents.POST_COMMIT_REMOVE, this, transaction);
              }
              if (POST_COMMIT_REMOVE_4 != null)
              {
                  POST_COMMIT_REMOVE_4.messageEventOccurred(MessageEvents.POST_COMMIT_REMOVE, this, transaction);
              }
              if (POST_COMMIT_REMOVE_3 != null)
              {
                  POST_COMMIT_REMOVE_3.messageEventOccurred(MessageEvents.POST_COMMIT_REMOVE, this, transaction);
              }
              if (POST_COMMIT_REMOVE_2 != null)
              {
                  POST_COMMIT_REMOVE_2.messageEventOccurred(MessageEvents.POST_COMMIT_REMOVE, this, transaction);
              }
              if (POST_COMMIT_REMOVE_1 != null)
              {
                  POST_COMMIT_REMOVE_1.messageEventOccurred(MessageEvents.POST_COMMIT_REMOVE, this, transaction);
              }
          } catch (SIException e)
          {
              FFDCFilter.processException(
                                          e,
                                          "com.ibm.ws.sib.processor.impl.store.items.MessageItem.eventPostCommitRemove",
                                          "1:1160:1.244.1.40",
                                          this);
  
              SibTr.exception(tc, e);
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(this, tc, "eventPostCommitRemove", e);
  
              throw new SIErrorException(e);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "eventPostCommitRemove");
      }