Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
71e9cefe
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看板
提交
71e9cefe
编写于
5月 31, 2013
作者:
M
malenkov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8012277: Improve AWT DataFlavor
Reviewed-by: art, skoivu
上级
ec70c551
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
18 deletion
+31
-18
src/share/classes/java/awt/datatransfer/DataFlavor.java
src/share/classes/java/awt/datatransfer/DataFlavor.java
+31
-18
未找到文件。
src/share/classes/java/awt/datatransfer/DataFlavor.java
浏览文件 @
71e9cefe
...
@@ -30,6 +30,9 @@ import java.nio.*;
...
@@ -30,6 +30,9 @@ import java.nio.*;
import
java.util.*
;
import
java.util.*
;
import
sun.awt.datatransfer.DataTransferer
;
import
sun.awt.datatransfer.DataTransferer
;
import
sun.reflect.misc.ReflectUtil
;
import
static
sun
.
security
.
util
.
SecurityConstants
.
GET_CLASSLOADER_PERMISSION
;
/**
/**
* A {@code DataFlavor} provides meta information about data. {@code DataFlavor}
* A {@code DataFlavor} provides meta information about data. {@code DataFlavor}
...
@@ -116,26 +119,36 @@ public class DataFlavor implements Externalizable, Cloneable {
...
@@ -116,26 +119,36 @@ public class DataFlavor implements Externalizable, Cloneable {
ClassLoader
fallback
)
ClassLoader
fallback
)
throws
ClassNotFoundException
throws
ClassNotFoundException
{
{
ClassLoader
systemClassLoader
=
(
ClassLoader
)
ReflectUtil
.
checkPackageAccess
(
className
);
java
.
security
.
AccessController
.
doPrivileged
(
new
java
.
security
.
PrivilegedAction
()
{
public
Object
run
()
{
ClassLoader
cl
=
Thread
.
currentThread
().
getContextClassLoader
();
return
(
cl
!=
null
)
?
cl
:
ClassLoader
.
getSystemClassLoader
();
}
});
try
{
try
{
return
Class
.
forName
(
className
,
true
,
systemClassLoader
);
SecurityManager
sm
=
System
.
getSecurityManager
();
}
catch
(
ClassNotFoundException
e2
)
{
if
(
sm
!=
null
)
{
if
(
fallback
!=
null
)
{
sm
.
checkPermission
(
GET_CLASSLOADER_PERMISSION
);
return
Class
.
forName
(
className
,
true
,
fallback
);
}
}
else
{
ClassLoader
loader
=
ClassLoader
.
getSystemClassLoader
();
throw
new
ClassNotFoundException
(
className
);
try
{
// bootstrap class loader and system class loader if present
return
Class
.
forName
(
className
,
true
,
loader
);
}
}
catch
(
ClassNotFoundException
exception
)
{
// thread context class loader if and only if present
loader
=
Thread
.
currentThread
().
getContextClassLoader
();
if
(
loader
!=
null
)
{
try
{
return
Class
.
forName
(
className
,
true
,
loader
);
}
catch
(
ClassNotFoundException
e
)
{
// fallback to user's class loader
}
}
}
}
catch
(
SecurityException
exception
)
{
// ignore secured class loaders
}
if
(
fallback
!=
null
)
{
return
Class
.
forName
(
className
,
true
,
fallback
);
}
else
{
throw
new
ClassNotFoundException
(
className
);
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录