docs: public void queueErrorOccurredInvocation(Connection connection,
                                                 ConversationReceiveListener listener,
                                                 SIConnectionLostException exception,
                                                 int segmentType,
                                                 int requestNumber,
                                                 int priority,
                                                 Conversation conversation)
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "queueErrorOccurredInvocation", new Object[] {connection, listener, exception, ""+segmentType, ""+requestNumber, ""+priority, conversation});
  
        AbstractInvocation invocation =
           allocateErrorOccurredInvocation(connection,
                                           listener,
                                           exception,
                                           segmentType,
                                           requestNumber,
                                           priority,
                                           conversation);
  
        // Start F201521
        // We don't always want to queue this as it could end up on some random thread.
        // As such, ask the conversation how many things it has left to process - if that
        // is 0, then queue it - otherwise, save it in the Conversation so that the last
        // thread working on that Conversatioon will invoke it.
        ConversationImpl convImpl = (ConversationImpl) conversation;
  
        int conversationRequestCount = 0;
        // Start D262285
        boolean queueIt = true;
        synchronized (convImpl.getTotalOutstandingRequestCountLock())
        {
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Queueing a errorOccurred invocation for ", conversation);
           conversationRequestCount = convImpl.getTotalOutstandingRequestCount();
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "Request count is: " + conversationRequestCount);
  
           if (conversationRequestCount != 0)
           {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Count != 0, saving");
              convImpl.setErrorOccurredInvocation(invocation);
              queueIt = false;
           }
        }
  
        if (queueIt)
        {
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Count = 0, queueing");
           queueInvocationCommon(invocation, convImpl);
        }
        // End D262285
        // End F201521
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "queueErrorOccurredInvocation");
     }