question: @ edu . umd . cs . findbugs . annotations . SuppressWarnings ( value = "ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD" , justification = "sync on localExceptions guards concurrent modification but this is a replacement" ) public void initRecoveredVersion ( T member , RegionVersionHolder < T > v , boolean latestOplog ) { RegionVersionHolder < T > recovered = v . clone ( ) ; if ( member == null || member . equals ( myId ) ) { synchronized ( localExceptions ) { if ( latestOplog || localVersion . get ( ) == 0 ) { localExceptions = recovered ; if ( logger . isTraceEnabled ( LogMarker . RVV ) ) { logger . trace ( LogMarker . RVV , "initRecoveredVersion setting local version to {}" , recovered . version ) ; } localVersion . set ( recovered . version ) ; } } } else { Long gcVersion = memberToGCVersion . get ( member ) ; synchronized ( memberToVersion ) { RegionVersionHolder < T > oldVersion = memberToVersion . get ( member ) ; if ( latestOplog || oldVersion == null || oldVersion . version == 0 ) { if ( gcVersion != null ) { recovered . removeExceptionsOlderThan ( gcVersion ) ; } memberToVersion . put ( member , recovered ) ; } } } }
target:  Records a version holder that we have recovered from disk. This version holder replaces the current version holder if it dominates the version holder we already have. This method will called once for each oplog we recover.