docs: private void internalHandleMessage(MessageItem msg,
                                         TransactionCommon transaction,
                                         SIBUuid8 sourceMEUuid,
                                         JsDestinationAddress inAddress,
                                         MessageProducer sender,
                                         boolean msgFRP)
                      throws SIConnectionLostException, SIRollbackException, SINotPossibleInCurrentConfigurationException,
                      SIIncorrectCallException, SIResourceException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "internalHandleMessage", new Object[] { msg,
                                                                     transaction,
                                                                     sourceMEUuid,
                                                                     inAddress,
                                                                     sender,
                                                                     msgFRP });
  
          if (TraceComponent.isAnyTracingEnabled() && UserTrace.tc_mt.isDebugEnabled())
              traceSend(msg);
  
          super.handleMessage(msg);
  
          // Remember if the original user transaction was a real one or not
          msg.setTransacted(!transaction.isAutoCommit());
  
          //Inbound pub/sub messages are discarded once the destination is marked as 
          //deleted.
          if (!(_destination.isToBeDeleted()))
          {
              //For debug purposes, tell the message which destinations its on
              if (TraceComponent.isAnyTracingEnabled() && UserTrace.tc_mt.isDebugEnabled())
              {
                  msg.setDebugName(_destination.getName());
              }
  
              if (sourceMEUuid.equals(_localMEUuid))
              {
                  localPut(msg, transaction);
              }
              else
              {
                  // Note: important to pass the originating cellule here so we
                  // can update the origin map.
                  try
                  {
                      remotePut(msg, sourceMEUuid);
                  } catch (SIResourceException e)
                  {
                      // No FFDC code needed
  
                      SIMPResourceException ee = new SIMPResourceException(e);
                      ee.setExceptionReason(SIRCConstants.SIRC0901_INTERNAL_MESSAGING_ERROR);
                      ee.setExceptionInserts(new String[] { "com.ibm.ws.sib.processor.impl.PubSubInputHandler.handleMessage",
                                                           "1:1134:1.329.1.1",
                                                           SIMPUtils.getStackTrace(e)
                      });
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                          SibTr.exit(tc, "internalHandleMessage", ee);
                      throw ee;
                  }
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "internalHandleMessage");
  
          return;
      }