Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
01afc402
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
01afc402
编写于
2月 05, 2013
作者:
M
mchung
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8007393: Possible race condition after JDK-6664509
Reviewed-by: alanb, jgish
上级
031a5ed1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
34 addition
and
16 deletion
+34
-16
src/share/classes/java/util/logging/LogManager.java
src/share/classes/java/util/logging/LogManager.java
+34
-16
未找到文件。
src/share/classes/java/util/logging/LogManager.java
浏览文件 @
01afc402
...
@@ -455,7 +455,40 @@ public class LogManager {
...
@@ -455,7 +455,40 @@ public class LogManager {
}
}
Logger
demandSystemLogger
(
String
name
,
String
resourceBundleName
)
{
Logger
demandSystemLogger
(
String
name
,
String
resourceBundleName
)
{
return
systemContext
.
demandLogger
(
name
,
resourceBundleName
);
// Add a system logger in the system context's namespace
final
Logger
sysLogger
=
systemContext
.
demandLogger
(
name
,
resourceBundleName
);
// Add the system logger to the LogManager's namespace if not exist
// so that there is only one single logger of the given name.
// System loggers are visible to applications unless a logger of
// the same name has been added.
Logger
logger
;
do
{
// First attempt to call addLogger instead of getLogger
// This would avoid potential bug in custom LogManager.getLogger
// implementation that adds a logger if does not exist
if
(
addLogger
(
sysLogger
))
{
// successfully added the new system logger
logger
=
sysLogger
;
}
else
{
logger
=
getLogger
(
name
);
}
}
while
(
logger
==
null
);
// LogManager will set the sysLogger's handlers via LogManager.addLogger method.
if
(
logger
!=
sysLogger
&&
sysLogger
.
getHandlers
().
length
==
0
)
{
// if logger already exists but handlers not set
final
Logger
l
=
logger
;
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
Void
>()
{
public
Void
run
()
{
for
(
Handler
hdl
:
l
.
getHandlers
())
{
sysLogger
.
addHandler
(
hdl
);
}
return
null
;
}
});
}
return
sysLogger
;
}
}
// LoggerContext maintains the logger namespace per context.
// LoggerContext maintains the logger namespace per context.
...
@@ -663,21 +696,6 @@ public class LogManager {
...
@@ -663,21 +696,6 @@ public class LogManager {
}
}
}
while
(
result
==
null
);
}
while
(
result
==
null
);
}
}
// Add the system logger to the LogManager's namespace if not exists
// The LogManager will set its handlers via the LogManager.addLogger method.
if
(!
manager
.
addLogger
(
result
)
&&
result
.
getHandlers
().
length
==
0
)
{
// if logger already exists but handlers not set
final
Logger
l
=
manager
.
getLogger
(
name
);
final
Logger
logger
=
result
;
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
Void
>()
{
public
Void
run
()
{
for
(
Handler
hdl
:
l
.
getHandlers
())
{
logger
.
addHandler
(
hdl
);
}
return
null
;
}
});
}
return
result
;
return
result
;
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录