private synchronized void updateEffectiveLevel(ClassLoader loader){
  if (loader == null)   loader=_systemClassLoader;
  int oldEffectiveLevel=getEffectiveLevel(loader);
  Level newEffectiveLevel=calculateEffectiveLevel(loader);
  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();
}

private synchronized void updateEffectiveLevel ( ClassLoader loader ) { if ( loader == null ) loader = _systemClassLoader ; int oldEffectiveLevel = getEffectiveLevel ( loader ) ; Level newEffectiveLevel = calculateEffectiveLevel ( loader ) ; 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 .
