docs: public boolean invokeEndpoint(final MessageEndpoint endpoint,
              final SIBusMessage message, final AbstractConsumerSession session,
              final SITransaction transaction, String debugMEName)
              throws ResourceAdapterInternalException {
  
          final String methodName = "invokeEndpoint";
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, methodName, new Object[] { endpoint,
                      message, session, transaction });
          }
  
          // Check that endpoint is a MessageListener
          if (!(endpoint instanceof MessageListener)) {
  
              throw new ResourceAdapterInternalException(NLS.getFormattedMessage(
                      ("UNEXPECTED_ENDPOINT_CWSJR1482"), new Object[] { endpoint,
                              MessageListener.class }, null));
  
          }
  
          final MessageListener listener = (MessageListener) endpoint;
  
          boolean success;
          try {
  
              // Convert to JMS message - no session to pass in, but do pass in 'pass thru' props
              final Message jmsMessage = _jmsUtils.inboundMessagePath(message,
                      null, passThruProps);
              
              // This is a debug property and only set if the value is not null (it will be null unless a
              // runtime system property is set.
              if ((debugMEName != null) && (!debugMEName.equals ("")))
              {
              	if (message instanceof JsJmsMessage)
              	{
              		((JsJmsMessage) message).setObjectProperty ("MEName", debugMEName);
              	}
              	else 
              	{
                      if (TraceComponent.isAnyTracingEnabled() && TRACE.isDebugEnabled()) 
                      {
                      	SibTr.debug(TRACE, "Can not set MDB location in message as the message is not a JsJmsMessage - its a " + jmsMessage.getClass().getName());
                      }
              	}
              }
              
              // Deliver message
              listener.onMessage(jmsMessage);
              success = true;
  
          } catch (final Throwable exc) {
  
              // Failed to deliver message
              FFDCFilter.processException(exc, CLASS_NAME + "." + methodName,
                      FFDC_PROBE_1, this);
              if (TRACE.isEventEnabled()) {
                  SibTr.exception(this, TRACE, exc);
              }
              success = false;
  
          }
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.exit(this, TRACE, methodName, Boolean.valueOf(success));
          }
          return success;
  
      }