protected void handleInvocationResponse ( int reqId , int methodId , Object [ ] args ) { // look up the invocation marshaller registered for that response ListenerMarshaller listener = _listeners . remove ( reqId ) ; if ( listener == null ) { log . warning ( "Received invocation response for which we have no registered listener. " + "It is possible that this listener was flushed because the response did " + "not arrive within " + _listenerMaxAge + " milliseconds." , "reqId" , reqId , "methId" , methodId , "args" , args ) ; return ; } // log.info("Dispatching invocation response", "listener", listener, // "methId", methodId, "args", args); // dispatch the response try { listener . dispatchResponse ( methodId , args ) ; } catch ( Throwable t ) { log . warning ( "Invocation response listener choked" , "listener" , listener , "methId" , methodId , "args" , args , t ) ; } // flush expired listeners periodically long now = System . currentTimeMillis ( ) ; if ( now - _lastFlushTime > LISTENER_FLUSH_INTERVAL ) { _lastFlushTime = now ; flushListeners ( now ) ; } }
Dispatches an invocation response .