summaryrefslogtreecommitdiff
path: root/java/util/logging/LogManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/util/logging/LogManager.java')
-rw-r--r--java/util/logging/LogManager.java33
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;
}