docs: public OutputHandler handleMessage(MessageItem msg)
    throws SIMPNotPossibleInCurrentConfigurationException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "handleMessage", msg);
  
      //Set the current arrival time for the msg
      msg.setCurrentMEArrivalTimestamp(System.currentTimeMillis());
  
      // 169892
      // If message's Reliability has not been defined,
      // default it to that of the Destination
      Reliability msgReliability = msg.getReliability();
      if (msgReliability == Reliability.NONE)
      {
        msgReliability = _destination.getDefaultReliability();
        msg.setReliability(msgReliability);
      }
      else
      {
        // 169892
        // If message's Reliability is more than destinations, for a temporary
        // destination this is allowed (since max storage strategy will be set),
        // otherwise throw an exception
        if (msgReliability.compareTo(_destination.getMaxReliability()) > 0)
        {
          if ((_destination.isTemporary() ||
               _destination.getName().equals(_messageProcessor.getTDReceiverAddr().getDestinationName()))
            && (msg.getReliability().compareTo(Reliability.RELIABLE_PERSISTENT) >= 0 ))
          {
            if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              SibTr.debug(
                tc,
                "handleMessage",
                "Sending ASSURED message to temporary destination");
          }
          else
          {
            if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "handleMessage", "Reliablity greater than dest");
  
            SIMPNotPossibleInCurrentConfigurationException e = new SIMPNotPossibleInCurrentConfigurationException(
              nls_cwsik.getFormattedMessage(
                "DELIVERY_ERROR_SIRC_33",  // MESSAGE_RELIABILITY_ERROR_CWSIP0231
                new Object[] {
                  msg.getReliability().toString(),
                  _destination.getMaxReliability().toString(),
                  _destination.getName(),
                  _messageProcessor.getMessagingEngineName()},
                null));
            e.setExceptionReason(SIRCConstants.SIRC0033_MESSAGE_RELIABILITY_ERROR);
            e.setExceptionInserts(new String[] {
                                msg.getReliability().toString(),
                                _destination.getMaxReliability().toString(),
                                _destination.getName(),
                                _messageProcessor.getMessagingEngineName()});
            throw e;
          }
        }
      }
  
      // For a temporary destination, maximum storage strategy is STORE_MAYBE (RELIABLE_NON_PERSISTENT)
      if(_destination.isTemporary() ||
         _destination.getName().equals(_messageProcessor.getTDReceiverAddr().getDestinationName()))
      {
        msg.setMaxStorageStrategy(AbstractItem.STORE_MAYBE);
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "handleMessage");
      
      return null;
    }