question: public void invokeHookSpoutFail ( Object messageId , long failLatencyNs ) { if ( taskHooks . size ( ) != 0 ) { SpoutFailInfo failInfo = new SpoutFailInfo ( messageId , getThisTaskId ( ) , failLatencyNs / Constants . MILLISECONDS_TO_NANOSECONDS ) ; for ( ITaskHook taskHook : taskHooks ) { taskHook . spoutFail ( failInfo ) ; } } }
target:  Task hook called in spout every time a tuple gets failed