private synchronized void updateEffectiveLevel ( ClassLoader loader ) { if ( loader == null ) loader = _systemClassLoader ; int oldEffectiveLevel = getEffectiveLevel ( loader ) ; Level newEffectiveLevel = calculateEffectiveLevel ( loader ) ; /* if (loader == _systemClassLoader) { _finestEffectiveLevel = newEffectiveLevel; _finestEffectiveLevelValue = newEffectiveLevel.intValue(); super.setLevel(_finestEffectiveLevel); } */ if ( oldEffectiveLevel == newEffectiveLevel . intValue ( ) && loader != _systemClassLoader ) return ; _finestEffectiveLevel = newEffectiveLevel ; _hasLocalEffectiveLevel = false ; updateEffectiveLevelPart ( _systemClassLoader ) ; updateEffectiveLevelPart ( loader ) ; for ( int i = 0 ; i < _loaders . size ( ) ; i ++ ) { WeakReference < ClassLoader > loaderRef = _loaders . get ( i ) ; ClassLoader classLoader = loaderRef . get ( ) ; if ( classLoader != null ) updateEffectiveLevelPart ( classLoader ) ; } super . setLevel ( _finestEffectiveLevel ) ; _finestEffectiveLevelValue = _finestEffectiveLevel . intValue ( ) ; updateChildren ( ) ; }
Recalculate the dynamic assigned levels .