public void restoreAfterSafeModeRestart ( ) { // Put the sessionsToCtxFromDisk entries into their respective // SessionNotifierThreads instances for ( Map . Entry < String , SessionNotificationCtx > entry : sessionsToCtxFromDisk . entrySet ( ) ) { // The conf and the conf related properties are missing in the // sessionsToCtx objects entry . getValue ( ) . setConf ( conf ) ; handleToNotifier ( entry . getKey ( ) ) . sessionsToCtx . put ( entry . getKey ( ) , entry . getValue ( ) ) ; sessionsToCtxFromDisk . remove ( entry ) ; } // Put the deletedSessions into the the respective SessionNotifierThreads for ( String deletedSessionHandle : deletedSessionsFromDisk ) { SessionNotifierThread notifierThread = handleToNotifier ( deletedSessionHandle ) ; if ( notifierThread . sessionsToCtx . get ( deletedSessionHandle ) != null ) { notifierThread . deletedSessions . put ( deletedSessionHandle , notifierThread ) ; } deletedSessionsFromDisk . remove ( deletedSessionHandle ) ; } // We can now start the notifier threads for ( int i = 0 ; i < numNotifierThreads ; i ++ ) { notifierThreads [ i ] . start ( ) ; } }
This method rebuilds members related to the SessionNotifier instance which were not directly persisted themselves .