Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
e0822a17
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看板
提交
e0822a17
编写于
6月 25, 2010
作者:
A
alanb
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6963828: TEST_BUG: java/nio/channels/FileTransfer.java takes too long (win)
Reviewed-by: chegar
上级
68cd1736
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
34 addition
and
24 deletion
+34
-24
test/java/nio/channels/FileChannel/Transfer.java
test/java/nio/channels/FileChannel/Transfer.java
+34
-24
未找到文件。
test/java/nio/channels/FileChannel/Transfer.java
浏览文件 @
e0822a17
...
...
@@ -25,7 +25,6 @@
* @bug 4434723 4482726 4559072 4638365 4795550 5081340 5103988 6253145
* @summary Test FileChannel.transferFrom and transferTo
* @library ..
* @run main/timeout=240 Transfer
*/
import
java.io.*
;
...
...
@@ -33,6 +32,8 @@ import java.net.*;
import
java.nio.*
;
import
java.nio.channels.*
;
import
java.nio.channels.spi.SelectorProvider
;
import
java.nio.file.StandardOpenOption
;
import
java.nio.file.FileAlreadyExistsException
;
import
java.util.Random
;
...
...
@@ -262,23 +263,30 @@ public class Transfer {
// Test transferFrom with large file
public
static
void
xferTest05
()
throws
Exception
{
// Linux can't handle the really large file sizes for a
// truncate or a positional write
String
osName
=
System
.
getProperty
(
"os.name"
);
if
(
osName
.
startsWith
(
"Linux"
))
return
;
// Create a source file & large sink file for the test
File
source
=
File
.
createTempFile
(
"blech"
,
null
);
source
.
deleteOnExit
();
initTestFile
(
source
,
100
);
File
sink
=
File
.
createTempFile
(
"sink"
,
null
);
// Create the sink file as a sparse file if possible
File
sink
=
null
;
FileChannel
fc
=
null
;
while
(
fc
==
null
)
{
sink
=
File
.
createTempFile
(
"sink"
,
null
);
// re-create as a sparse file
sink
.
toPath
().
delete
();
try
{
fc
=
FileChannel
.
open
(
sink
.
toPath
(),
StandardOpenOption
.
CREATE_NEW
,
StandardOpenOption
.
WRITE
,
StandardOpenOption
.
SPARSE
);
}
catch
(
FileAlreadyExistsException
ignore
)
{
// someone else got it
}
}
sink
.
deleteOnExit
();
long
testSize
=
((
long
)
Integer
.
MAX_VALUE
)
*
2
;
RandomAccessFile
raf
=
new
RandomAccessFile
(
sink
,
"rw"
);
FileChannel
fc
=
raf
.
getChannel
();
try
{
fc
.
write
(
ByteBuffer
.
wrap
(
"Use the source!"
.
getBytes
()),
testSize
-
40
);
...
...
@@ -288,24 +296,26 @@ public class Transfer {
return
;
}
finally
{
fc
.
close
();
raf
.
close
();
}
// Get new channels for the source and sink and attempt transfer
FileInputStream
fis
=
new
FileInputStream
(
source
);
FileChannel
sourceChannel
=
fis
.
getChannel
();
raf
=
new
RandomAccessFile
(
sink
,
"rw"
);
FileChannel
sinkChannel
=
raf
.
getChannel
();
long
bytesWritten
=
sinkChannel
.
transferFrom
(
sourceChannel
,
testSize
-
40
,
10
);
if
(
bytesWritten
!=
10
)
{
throw
new
RuntimeException
(
"Transfer test 5 failed "
+
bytesWritten
);
FileChannel
sourceChannel
=
new
FileInputStream
(
source
).
getChannel
();
try
{
FileChannel
sinkChannel
=
new
RandomAccessFile
(
sink
,
"rw"
).
getChannel
();
try
{
long
bytesWritten
=
sinkChannel
.
transferFrom
(
sourceChannel
,
testSize
-
40
,
10
);
if
(
bytesWritten
!=
10
)
{
throw
new
RuntimeException
(
"Transfer test 5 failed "
+
bytesWritten
);
}
}
finally
{
sinkChannel
.
close
();
}
}
finally
{
sourceChannel
.
close
();
}
sourceChannel
.
close
();
sinkChannel
.
close
();
source
.
delete
();
sink
.
delete
();
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录