/[classpath]/classpath/java/util/logging/LogManager.java
ViewVC logotype

Diff of /classpath/java/util/logging/LogManager.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.9.2.4 by gnu_andrew, Tue Sep 20 18:46:30 2005 UTC revision 1.9.2.5 by tromey, Tue Sep 27 16:54:53 2005 UTC
# Line 112  public class LogManager Line 112  public class LogManager
112     * The registered named loggers; maps the name of a Logger to     * The registered named loggers; maps the name of a Logger to
113     * a WeakReference to it.     * a WeakReference to it.
114     */     */
115    private Map loggers;    private Map<String, WeakReference<Logger>> loggers;
116    final Logger rootLogger;    final Logger rootLogger;
117    
118    /**    /**
# Line 142  public class LogManager Line 142  public class LogManager
142        throw new IllegalStateException("there can be only one LogManager; use LogManager.getLogManager()");        throw new IllegalStateException("there can be only one LogManager; use LogManager.getLogManager()");
143    
144      logManager = this;      logManager = this;
145      loggers = new java.util.HashMap();      loggers = new java.util.HashMap<String, WeakReference<Logger>>();
146      rootLogger = new Logger("", null);      rootLogger = new Logger("", null);
147      rootLogger.setLevel(Level.INFO);      rootLogger.setLevel(Level.INFO);
148      addLogger(rootLogger);      addLogger(rootLogger);
# Line 274  public class LogManager Line 274  public class LogManager
274       */       */
275      name = logger.getName();      name = logger.getName();
276    
277      ref = (WeakReference) loggers.get(name);      ref = loggers.get(name);
278      if (ref != null)      if (ref != null)
279        {        {
280          if (ref.get() != null)          if (ref.get() != null)
# Line 291  public class LogManager Line 291  public class LogManager
291        checkAccess();        checkAccess();
292    
293      Logger parent = findAncestor(logger);      Logger parent = findAncestor(logger);
294      loggers.put(name, new WeakReference(logger));      loggers.put(name, new WeakReference<Logger>(logger));
295      if (parent != logger.getParent())      if (parent != logger.getParent())
296        logger.setParent(parent);        logger.setParent(parent);
297    
# Line 303  public class LogManager Line 303  public class LogManager
303       */       */
304      if (parent != rootLogger)      if (parent != rootLogger)
305        {        {
306          for (Iterator iter = loggers.keySet().iterator(); iter.hasNext();)          for (Iterator<String> iter = loggers.keySet().iterator();
307                 iter.hasNext(); )
308            {            {
309              Logger possChild = (Logger) ((WeakReference) loggers.get(iter.next()))              Logger possChild = loggers.get(iter.next()).get();
                                .get();  
310              if ((possChild == null) || (possChild == logger)              if ((possChild == null) || (possChild == logger)
311                  || (possChild.getParent() != parent))                  || (possChild.getParent() != parent))
312                continue;                continue;
# Line 354  public class LogManager Line 354  public class LogManager
354      if (child == rootLogger)      if (child == rootLogger)
355        return null;        return null;
356    
357      for (Iterator iter = loggers.keySet().iterator(); iter.hasNext();)      for (Iterator<String> iter = loggers.keySet().iterator(); iter.hasNext();)
358        {        {
359          candName = (String) iter.next();          candName = iter.next();
360          candNameLength = candName.length();          candNameLength = candName.length();
361    
362          if (candNameLength > bestNameLength          if (candNameLength > bestNameLength
# Line 364  public class LogManager Line 364  public class LogManager
364              && childName.startsWith(candName)              && childName.startsWith(candName)
365              && childName.charAt(candNameLength) == '.')              && childName.charAt(candNameLength) == '.')
366            {            {
367              cand = (Logger) ((WeakReference) loggers.get(candName)).get();              cand = loggers.get(candName).get();
368              if ((cand == null) || (cand == child))              if ((cand == null) || (cand == child))
369                continue;                continue;
370    
# Line 389  public class LogManager Line 389  public class LogManager
389     */     */
390    public synchronized Logger getLogger(String name)    public synchronized Logger getLogger(String name)
391    {    {
392      WeakReference ref;      WeakReference<Logger> ref;
393    
394      /* Throw a NullPointerException if name is null. */      /* Throw a NullPointerException if name is null. */
395      name.getClass();      name.getClass();
396    
397      ref = (WeakReference) loggers.get(name);      ref = loggers.get(name);
398      if (ref != null)      if (ref != null)
399        return (Logger) ref.get();        return ref.get();
400      else      else
401        return null;        return null;
402    }    }
# Line 409  public class LogManager Line 409  public class LogManager
409     * @return an Enumeration with the names of the currently     * @return an Enumeration with the names of the currently
410     *    registered Loggers.     *    registered Loggers.
411     */     */
412    public synchronized Enumeration getLoggerNames()    public synchronized Enumeration<String> getLoggerNames()
413    {    {
414      return Collections.enumeration(loggers.keySet());      return Collections.enumeration(loggers.keySet());
415    }    }
# Line 432  public class LogManager Line 432  public class LogManager
432    
433      properties = new Properties();      properties = new Properties();
434    
435      Iterator iter = loggers.values().iterator();      Iterator<WeakReference<Logger>> iter = loggers.values().iterator();
436      while (iter.hasNext())      while (iter.hasNext())
437        {        {
438          WeakReference ref;          WeakReference<Logger> ref;
439          Logger logger;          Logger logger;
440    
441          ref = (WeakReference) iter.next();          ref = iter.next();
442          if (ref != null)          if (ref != null)
443            {            {
444              logger = (Logger) ref.get();              logger = ref.get();
445    
446              if (logger == null)              if (logger == null)
447                iter.remove();                iter.remove();

Legend:
Removed from v.1.9.2.4  
changed lines
  Added in v.1.9.2.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26