Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
9343a200
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看板
提交
9343a200
编写于
6月 08, 2015
作者:
C
coffeys
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8077418: StackOverflowError during PolicyFile lookup
Reviewed-by: mullan
上级
b2b3dcad
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
28 deletion
+14
-28
src/share/classes/java/security/ProtectionDomain.java
src/share/classes/java/security/ProtectionDomain.java
+14
-28
未找到文件。
src/share/classes/java/security/ProtectionDomain.java
浏览文件 @
9343a200
/*
* Copyright (c) 1997, 201
4
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -25,7 +25,6 @@
package
java.security
;
import
java.lang.ref.WeakReference
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Enumeration
;
...
...
@@ -457,37 +456,24 @@ public class ProtectionDomain {
/**
* Used for storing ProtectionDomains as keys in a Map.
*/
final
static
class
Key
{}
// A cache of ProtectionDomains and their Permissions
private
static
class
PDCache
implements
ProtectionDomainCache
{
// We must wrap the PermissionCollection in a WeakReference as there
// are some PermissionCollections which contain strong references
// back to a ProtectionDomain and otherwise would never be removed
// from the WeakHashMap
private
final
Map
<
Key
,
WeakReference
<
PermissionCollection
>>
map
=
new
WeakHashMap
<>();
@Override
public
synchronized
void
put
(
ProtectionDomain
pd
,
PermissionCollection
pc
)
{
map
.
put
(
pd
==
null
?
null
:
pd
.
key
,
new
WeakReference
<>(
pc
));
}
@Override
public
synchronized
PermissionCollection
get
(
ProtectionDomain
pd
)
{
WeakReference
<
PermissionCollection
>
ref
=
map
.
get
(
pd
==
null
?
null
:
pd
.
key
);
return
ref
==
null
?
null
:
ref
.
get
();
}
}
final
class
Key
{}
static
{
SharedSecrets
.
setJavaSecurityProtectionDomainAccess
(
new
JavaSecurityProtectionDomainAccess
()
{
@Override
public
ProtectionDomainCache
getProtectionDomainCache
()
{
return
new
PDCache
();
return
new
ProtectionDomainCache
()
{
private
final
Map
<
Key
,
PermissionCollection
>
map
=
Collections
.
synchronizedMap
(
new
WeakHashMap
<
Key
,
PermissionCollection
>());
public
void
put
(
ProtectionDomain
pd
,
PermissionCollection
pc
)
{
map
.
put
((
pd
==
null
?
null
:
pd
.
key
),
pc
);
}
public
PermissionCollection
get
(
ProtectionDomain
pd
)
{
return
pd
==
null
?
map
.
get
(
null
)
:
map
.
get
(
pd
.
key
);
}
};
}
});
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录