docs: private void processAsyncSessionStoppedCallback (CommsByteBuffer buffer, Conversation conversation) {
       if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "processAsyncSessionStoppedCallback", new Object[]{buffer, conversation});
  
       final short connectionObjectId = buffer.getShort();
       final short clientSessionId    = buffer.getShort();
  
       if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "connectionObjectId="+connectionObjectId);
       if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "clientSessionId="+clientSessionId);
  
       // Obtain the proxy queue group
       final ClientConversationState convState = (ClientConversationState) conversation.getAttachment();
       final ProxyQueueConversationGroup pqcg = convState.getProxyQueueConversationGroup();
       if (pqcg == null) {
         if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "ProxyQueueConversationGroup=null");
         SIErrorException e = new SIErrorException(nls.getFormattedMessage("NULL_PROXY_QUEUE_CONV_GROUP_CWSICO8020", new Object[] {}, null));
         FFDCFilter.processException(e, CLASS_NAME + ".processAsyncSessionStoppedCallback", CommsConstants.PROXYRECEIVELISTENER_SESSION_STOPPED_01, this);
         SibTr.error(tc, "NULL_PROXY_QUEUE_CONV_GROUP_CWSICO8020", e);
         throw e;
       }
  
       // Obtain the required proxy queue from the proxy queue group and ensure its of the right class (ie not read ahead)
       final ProxyQueue proxyQueue = pqcg.find(clientSessionId);
       if (proxyQueue instanceof AsynchConsumerProxyQueue) {
         final ConsumerSessionProxy consumerSessionProxy = ((AsynchConsumerProxyQueue)proxyQueue).getConsumerSessionProxy();
  
         //Drive the ConsumerSessionProxy.stoppableConsumerSessionStopped method on a different thread.
         ClientAsynchEventThreadPool.getInstance().dispatchStoppableConsumerSessionStopped(consumerSessionProxy);
       } else {
         if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "proxyQueue not an instance of AsynchConsumerProxyQueue is an instance of "+ proxyQueue.getClass().getName());
         SIErrorException e = new SIErrorException(nls.getFormattedMessage("WRONG_CLASS_CWSICO8021", new Object[] {proxyQueue.getClass().getName()}, null));
         FFDCFilter.processException(e, CLASS_NAME + ".processAsyncSessionStoppedCallback", CommsConstants.PROXYRECEIVELISTENER_SESSION_STOPPED_02, this);
         SibTr.error(tc, "WRONG_CLASS_CWSICO8021", e);
         throw e;
       }
  
       if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "processAsyncSessionStoppedCallback");
     }