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" ) ; }
Invokes the dataReceived method . If the callback throws an exception than the connection associated with it is invalidated .