docs: public void receiveMessage(MEConnection conn, AbstractMessage aMessage)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "receiveMessage", new Object[] {conn,
                                                        aMessage,
                                                        "verboseMsg IN : " + aMessage.toVerboseString()});
  
      // Minimal comms trace of the message we've received
      if (TraceComponent.isAnyTracingEnabled()) {
        MECommsTrc.traceMessage(tc, 
            _messageProcessor, 
            aMessage.getGuaranteedSourceMessagingEngineUUID(), 
            MECommsTrc.OP_RECV, 
            conn, 
            aMessage);
      }
  
      // Take a read lock to ensure that we can't be stopped while processing a
      // message
      mpioLockManager.lock();    
      try
      {    
        if (started)
        {
          //pass the message on to the RMR
          _remoteMessageReciever.receiveMessage(aMessage);
        }
        else if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
        {
          SibTr.debug(tc, "Ignoring message as in stopped state");
        }
      }
      catch(Throwable e)
      {
        // Anything going wrong in Processor (or below, e.g. MsgStore) shouldn't
        // bring the ME-ME connection down. To get an exception through to here
        // we must have gone wrong somewhere, i.e. an APAR-kind of event. But even
        // so, that's no reason to knobble all ME-to-ME communication, so we swallow
        // any exception here, after spitting out an FFDC.
        
        FFDCFilter.processException(
            e,
            "com.ibm.ws.sib.processor.io.MPIO.receiveMessage",
            "1:228:1.32",
            new Object[] {this, aMessage, conn, _messageProcessor.getMessagingEngineName()});
        
        if (e instanceof Exception)
          SibTr.exception(tc, (Exception)e);
        
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          SibTr.debug(tc, "Exception occurred when processing a message " + e);
           
        // We're not allowed to swallow this exception - let it work its way back to
        // Comms
        if(e instanceof ThreadDeath)
        {     
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
            SibTr.exit(tc, "receiveMessage", e); 
          throw (ThreadDeath)e;
        }
      }
      finally
      {
        mpioLockManager.unlock();      
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "receiveMessage");
    }