Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
dc6d3f6f
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看板
提交
dc6d3f6f
编写于
5月 04, 2011
作者:
A
alexp
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7020198: ImageIcon creates Component with null acc
Reviewed-by: rupashka, hawtin
上级
899f87d6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
30 addition
and
12 deletion
+30
-12
src/share/classes/javax/swing/ImageIcon.java
src/share/classes/javax/swing/ImageIcon.java
+30
-12
未找到文件。
src/share/classes/javax/swing/ImageIcon.java
浏览文件 @
dc6d3f6f
...
...
@@ -40,8 +40,7 @@ import javax.accessibility.*;
import
sun.awt.AppContext
;
import
java.lang.reflect.Field
;
import
java.security.PrivilegedAction
;
import
java.security.AccessController
;
import
java.security.*
;
/**
* An implementation of the Icon interface that paints Icons
...
...
@@ -81,32 +80,51 @@ public class ImageIcon implements Icon, Serializable, Accessible {
ImageObserver
imageObserver
;
String
description
=
null
;
// Fields for twisted backward compatibility only. DO NOT USE.
protected
final
static
Component
component
;
protected
final
static
MediaTracker
tracker
;
static
{
component
=
new
Component
()
{};
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
Object
>()
{
public
Object
run
()
{
component
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
Component
>()
{
public
Component
run
()
{
try
{
final
Component
component
=
createNoPermsComponent
();
// 6482575 - clear the appContext field so as not to leak it
Field
appContextField
=
Component
.
class
.
getDeclaredField
(
"appContext"
);
Component
.
class
.
getDeclaredField
(
"appContext"
);
appContextField
.
setAccessible
(
true
);
appContextField
.
set
(
component
,
null
);
}
catch
(
NoSuchFieldException
e
)
{
e
.
printStackTrace
();
}
catch
(
IllegalAccessException
e
)
{
return
component
;
}
catch
(
Throwable
e
)
{
// We don't care about component.
// So don't prevent class initialisation.
e
.
printStackTrace
();
return
null
;
}
return
null
;
}
});
tracker
=
new
MediaTracker
(
component
);
}
private
static
Component
createNoPermsComponent
()
{
// 7020198 - set acc field to no permissions and no subject
// Note, will have appContext set.
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
Component
>()
{
public
Component
run
()
{
return
new
Component
()
{
};
}
},
new
AccessControlContext
(
new
ProtectionDomain
[]{
new
ProtectionDomain
(
null
,
null
)
})
);
}
/**
* Id used in loading images from MediaTracker.
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录