diff options
Diffstat (limited to 'java/util/logging/LogManager.java')
-rw-r--r-- | java/util/logging/LogManager.java | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/java/util/logging/LogManager.java b/java/util/logging/LogManager.java index 444ab6a26..7ff8c509d 100644 --- a/java/util/logging/LogManager.java +++ b/java/util/logging/LogManager.java @@ -318,26 +318,23 @@ public class LogManager * When adding "foo.bar", the logger "foo.bar.baz" should change * its parent to "foo.bar". */ - if (parent != Logger.root) + for (Iterator iter = loggers.keySet().iterator(); iter.hasNext();) { - for (Iterator<String> iter = loggers.keySet().iterator(); - iter.hasNext(); ) - { - Logger possChild = loggers.get(iter.next()).get(); - if ((possChild == null) || (possChild == logger) - || (possChild.getParent() != parent)) - continue; - - if (! possChild.getName().startsWith(name)) - continue; - - if (possChild.getName().charAt(name.length()) != '.') - continue; - - possChild.setParent(logger); - } + Logger possChild = (Logger) ((WeakReference) loggers.get(iter.next())) + .get(); + if ((possChild == null) || (possChild == logger) + || (possChild.getParent() != parent)) + continue; + + if (! possChild.getName().startsWith(name)) + continue; + + if (possChild.getName().charAt(name.length()) != '.') + continue; + + possChild.setParent(logger); } - + return true; } |