@ Override public void recover ( ) { // not revoverable if ( this . getCoreConnection ( ) == null || ! ImplementorUtils . isImplementationOf ( getCoreConnection ( ) , IXADataRecorderAware . class ) ) { return ; } IXADataRecorderAware con = ImplementorUtils . cast ( getCoreConnection ( ) , IXADataRecorderAware . class ) ; // the connection has to re establish the state of the message LOG IXADataRecorder msgLogger = this . getXADataRecorder ( ) ; if ( msgLogger . isEmpty ( ) ) { return ; } this . fireConnectionRecovering ( ) ; IDataRecordReplay dataRecordReplay = con . recoverReplayListener ( ) ; if ( dataRecordReplay == null ) { throw new IllegalStateException ( "IPhynixxConnection.recoverReplayListener() has to provide a IDataRecordReplay to be recovered" ) ; } // msgLogger.recover(); msgLogger . replayRecords ( dataRecordReplay ) ; this . fireConnectionRecovered ( ) ; }
recovers the data of the dataLogger and provides the recovered data to the connection via the replaylistener