code: protected synchronized void invoke()
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "invoke");
        try
        {
           // Pass details to implementor's conversation receive listener.
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) JFapUtils.debugTraceWsByteBuffer(this, tc, data, 16, "data passed to dataReceived method");
           listener.dataReceived(data,
                                 segmentType,
                                 requestNumber,
                                 priority,
                                 allocatedFromPool,
                                 partOfExchange,
                                 conversation);
        }
        catch(Throwable t)
        {
           FFDCFilter.processException
              (t, "com.ibm.ws.sib.jfapchannel.impl.rldispatcher.ReceiveListenerDataReceivedInvocation", JFapChannelConstants.RLDATARECEIVEDINVOKE_INVOKE_01);
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "exception thrown by dataReceived");
           if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) SibTr.exception(this, tc, t);
  
           // User has thrown an exception from data received method.  Probably
           // the best way to deal with this is to invalidate their connection.
           // That'll learn 'em.
           connection.invalidate(true, t, "exception thrown by dataReceived - "+t.getLocalizedMessage());  // D224570
  
        }
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "invoke");
     }
docs: Invokes the dataReceived method.  If the callback throws an exception
  than the connection associated with it is invalidated.