Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
0071d180
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0071d180
编写于
11月 19, 2014
作者:
P
pchelko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8027148: SystemFlavorMap.getNativesForFlavor returns list of native formats in incorrect order
Reviewed-by: anthony, serb
上级
1b2caa0f
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
346 addition
and
215 deletion
+346
-215
src/share/classes/java/awt/datatransfer/SystemFlavorMap.java
src/share/classes/java/awt/datatransfer/SystemFlavorMap.java
+151
-206
src/share/classes/sun/awt/datatransfer/DataTransferer.java
src/share/classes/sun/awt/datatransfer/DataTransferer.java
+6
-5
src/solaris/classes/sun/awt/X11/XDataTransferer.java
src/solaris/classes/sun/awt/X11/XDataTransferer.java
+6
-4
test/java/awt/datatransfer/MappingGenerationTest/MappingGenerationTest.java
...transfer/MappingGenerationTest/MappingGenerationTest.java
+183
-0
未找到文件。
src/share/classes/java/awt/datatransfer/SystemFlavorMap.java
浏览文件 @
0071d180
此差异已折叠。
点击以展开。
src/share/classes/sun/awt/datatransfer/DataTransferer.java
浏览文件 @
0071d180
...
...
@@ -77,6 +77,7 @@ import java.util.Comparator;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.Iterator
;
import
java.util.LinkedHashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.SortedMap
;
...
...
@@ -273,7 +274,7 @@ public abstract class DataTransferer {
* instead, null will be returned.
*/
public
static
synchronized
DataTransferer
getInstance
()
{
return
((
ComponentFactory
)
Toolkit
.
getDefaultToolkit
()).
getDataTransferer
();
return
((
SunToolkit
)
Toolkit
.
getDefaultToolkit
()).
getDataTransferer
();
}
/**
...
...
@@ -2424,8 +2425,8 @@ search:
* If there are no platform-specific mappings for this native, the method
* returns an empty <code>List</code>.
*/
public
Li
st
getPlatformMappingsForNative
(
String
nat
)
{
return
new
ArrayList
();
public
Li
nkedHashSet
<
DataFlavor
>
getPlatformMappingsForNative
(
String
nat
)
{
return
new
LinkedHashSet
<>
();
}
/**
...
...
@@ -2433,8 +2434,8 @@ search:
* If there are no platform-specific mappings for this flavor, the method
* returns an empty <code>List</code>.
*/
public
Li
st
getPlatformMappingsForFlavor
(
DataFlavor
df
)
{
return
new
ArrayList
();
public
Li
nkedHashSet
<
String
>
getPlatformMappingsForFlavor
(
DataFlavor
df
)
{
return
new
LinkedHashSet
<>
();
}
/**
...
...
src/solaris/classes/sun/awt/X11/XDataTransferer.java
浏览文件 @
0071d180
...
...
@@ -45,6 +45,7 @@ import java.net.URISyntaxException;
import
java.util.ArrayList
;
import
java.util.Iterator
;
import
java.util.LinkedHashSet
;
import
java.util.List
;
import
javax.imageio.ImageIO
;
...
...
@@ -328,8 +329,9 @@ public class XDataTransferer extends DataTransferer {
* a valid MIME and return a list of flavors to which the data in this MIME
* type can be translated by the Data Transfer subsystem.
*/
public
List
<
DataFlavor
>
getPlatformMappingsForNative
(
String
nat
)
{
List
<
DataFlavor
>
flavors
=
new
ArrayList
();
public
LinkedHashSet
<
DataFlavor
>
getPlatformMappingsForNative
(
String
nat
)
{
LinkedHashSet
<
DataFlavor
>
flavors
=
new
LinkedHashSet
<>();
if
(
nat
==
null
)
{
return
flavors
;
...
...
@@ -389,8 +391,8 @@ public class XDataTransferer extends DataTransferer {
* MIME types to which the data in this flavor can be translated by the Data
* Transfer subsystem.
*/
public
Li
st
getPlatformMappingsForFlavor
(
DataFlavor
df
)
{
Li
st
natives
=
new
ArrayList
(
1
);
public
Li
nkedHashSet
<
String
>
getPlatformMappingsForFlavor
(
DataFlavor
df
)
{
Li
nkedHashSet
<
String
>
natives
=
new
LinkedHashSet
<>
(
1
);
if
(
df
==
null
)
{
return
natives
;
...
...
test/java/awt/datatransfer/MappingGenerationTest/MappingGenerationTest.java
0 → 100644
浏览文件 @
0071d180
/*
* Copyright (c) 2014, 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import
java.awt.datatransfer.DataFlavor
;
import
java.awt.datatransfer.SystemFlavorMap
;
import
java.util.List
;
/*
@test
@bug 4512530 8027148
@summary tests that mappings for text flavors are generated properly
@author das@sparc.spb.su area=datatransfer
*/
public
class
MappingGenerationTest
{
private
static
final
SystemFlavorMap
fm
=
(
SystemFlavorMap
)
SystemFlavorMap
.
getDefaultFlavorMap
();
public
static
void
main
(
String
[]
args
)
{
test1
();
test2
();
test3
();
test4
();
test5
();
test6
();
}
/**
* Verifies that Lists returned from getNativesForFlavor() and
* getFlavorsForNative() are not modified with a subsequent call
* to addUnencodedNativeForFlavor() and addFlavorForUnencodedNative()
* respectively.
*/
public
static
void
test1
()
{
DataFlavor
df
=
new
DataFlavor
(
"text/plain-test1"
,
null
);
String
nat
=
"native1"
;
List
<
String
>
natives
=
fm
.
getNativesForFlavor
(
df
);
fm
.
addUnencodedNativeForFlavor
(
df
,
nat
);
List
<
String
>
nativesNew
=
fm
.
getNativesForFlavor
(
df
);
if
(
natives
.
equals
(
nativesNew
))
{
System
.
err
.
println
(
"orig="
+
natives
);
System
.
err
.
println
(
"new="
+
nativesNew
);
throw
new
RuntimeException
(
"Test failed"
);
}
List
<
DataFlavor
>
flavors
=
fm
.
getFlavorsForNative
(
nat
);
fm
.
addFlavorForUnencodedNative
(
nat
,
df
);
List
<
DataFlavor
>
flavorsNew
=
fm
.
getFlavorsForNative
(
nat
);
if
(
flavors
.
equals
(
flavorsNew
))
{
System
.
err
.
println
(
"orig="
+
flavors
);
System
.
err
.
println
(
"new="
+
flavorsNew
);
throw
new
RuntimeException
(
"Test failed"
);
}
}
/**
* Verifies that SystemFlavorMap is not affected by modification of
* the Lists returned from getNativesForFlavor() and
* getFlavorsForNative().
*/
public
static
void
test2
()
{
DataFlavor
df
=
new
DataFlavor
(
"text/plain-test2"
,
null
);
String
nat
=
"native2"
;
DataFlavor
extraDf
=
new
DataFlavor
(
"text/test"
,
null
);
List
<
String
>
natives
=
fm
.
getNativesForFlavor
(
df
);
natives
.
add
(
"Should not be here"
);
java
.
util
.
List
nativesNew
=
fm
.
getNativesForFlavor
(
df
);
if
(
natives
.
equals
(
nativesNew
))
{
System
.
err
.
println
(
"orig="
+
natives
);
System
.
err
.
println
(
"new="
+
nativesNew
);
throw
new
RuntimeException
(
"Test failed"
);
}
List
<
DataFlavor
>
flavors
=
fm
.
getFlavorsForNative
(
nat
);
flavors
.
add
(
extraDf
);
java
.
util
.
List
flavorsNew
=
fm
.
getFlavorsForNative
(
nat
);
if
(
flavors
.
equals
(
flavorsNew
))
{
System
.
err
.
println
(
"orig="
+
flavors
);
System
.
err
.
println
(
"new="
+
flavorsNew
);
throw
new
RuntimeException
(
"Test failed"
);
}
}
/**
* Verifies that addUnencodedNativeForFlavor() for a particular text flavor
* doesn't affect mappings for other flavors.
*/
public
static
void
test3
()
{
DataFlavor
df1
=
new
DataFlavor
(
"text/plain-test3"
,
null
);
DataFlavor
df2
=
new
DataFlavor
(
"text/plain-test3; charset=Unicode; class=java.io.Reader"
,
null
);
String
nat
=
"native3"
;
List
<
String
>
natives
=
fm
.
getNativesForFlavor
(
df2
);
fm
.
addUnencodedNativeForFlavor
(
df1
,
nat
);
List
<
String
>
nativesNew
=
fm
.
getNativesForFlavor
(
df2
);
if
(!
natives
.
equals
(
nativesNew
))
{
System
.
err
.
println
(
"orig="
+
natives
);
System
.
err
.
println
(
"new="
+
nativesNew
);
throw
new
RuntimeException
(
"Test failed"
);
}
}
/**
* Verifies that addUnencodedNativeForFlavor() really adds the specified
* flavor-to-native mapping to the existing mappings.
*/
public
static
void
test4
()
{
DataFlavor
df
=
new
DataFlavor
(
"text/plain-test4; charset=Unicode; class=java.io.Reader"
,
null
);
String
nat
=
"native4"
;
List
<
String
>
natives
=
fm
.
getNativesForFlavor
(
df
);
if
(!
natives
.
contains
(
nat
))
{
fm
.
addUnencodedNativeForFlavor
(
df
,
nat
);
List
<
String
>
nativesNew
=
fm
.
getNativesForFlavor
(
df
);
natives
.
add
(
nat
);
if
(!
natives
.
equals
(
nativesNew
))
{
System
.
err
.
println
(
"orig="
+
natives
);
System
.
err
.
println
(
"new="
+
nativesNew
);
throw
new
RuntimeException
(
"Test failed"
);
}
}
}
/**
* Verifies that a flavor doesn't have any flavor-to-native mappings after
* a call to setNativesForFlavor() with this flavor and an empty native
* array as arguments.
*/
public
static
void
test5
()
{
final
DataFlavor
flavor
=
new
DataFlavor
(
"text/plain-TEST5; charset=Unicode"
,
null
);
fm
.
getNativesForFlavor
(
flavor
);
fm
.
setNativesForFlavor
(
flavor
,
new
String
[
0
]);
List
<
String
>
natives
=
fm
.
getNativesForFlavor
(
flavor
);
if
(!
natives
.
isEmpty
())
{
System
.
err
.
println
(
"natives="
+
natives
);
throw
new
RuntimeException
(
"Test failed"
);
}
}
/**
* Verifies that a native doesn't have any native-to-flavor mappings after
* a call to setFlavorsForNative() with this native and an empty flavor
* array as arguments.
*/
public
static
void
test6
()
{
final
String
nat
=
"STRING"
;
fm
.
getFlavorsForNative
(
nat
);
fm
.
setFlavorsForNative
(
nat
,
new
DataFlavor
[
0
]);
List
<
DataFlavor
>
flavors
=
fm
.
getFlavorsForNative
(
nat
);
if
(!
flavors
.
isEmpty
())
{
System
.
err
.
println
(
"flavors="
+
flavors
);
throw
new
RuntimeException
(
"Test failed"
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录