Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
0e232e1d
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看板
提交
0e232e1d
编写于
9月 16, 2016
作者:
I
igerasim
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8164147: Improve streaming socket output
Reviewed-by: chegar, igerasim
上级
c5df4fc8
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
91 addition
and
81 deletion
+91
-81
src/share/classes/java/net/SocketInputStream.java
src/share/classes/java/net/SocketInputStream.java
+4
-3
src/share/classes/java/net/SocketOutputStream.java
src/share/classes/java/net/SocketOutputStream.java
+5
-3
src/solaris/native/java/net/SocketOutputStream.c
src/solaris/native/java/net/SocketOutputStream.c
+25
-21
src/windows/native/java/net/SocketOutputStream.c
src/windows/native/java/net/SocketOutputStream.c
+57
-54
未找到文件。
src/share/classes/java/net/SocketInputStream.java
浏览文件 @
0e232e1d
/*
* Copyright (c) 1995, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1995, 201
6
, 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
...
...
@@ -155,11 +155,12 @@ class SocketInputStream extends FileInputStream
}
// bounds check
if
(
length
<=
0
||
off
<
0
||
off
+
length
>
b
.
length
)
{
if
(
length
<=
0
||
off
<
0
||
length
>
b
.
length
-
off
)
{
if
(
length
==
0
)
{
return
0
;
}
throw
new
ArrayIndexOutOfBoundsException
();
throw
new
ArrayIndexOutOfBoundsException
(
"length == "
+
length
+
" off == "
+
off
+
" buffer length == "
+
b
.
length
);
}
boolean
gotReset
=
false
;
...
...
src/share/classes/java/net/SocketOutputStream.java
浏览文件 @
0e232e1d
/*
* Copyright (c) 1995, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1995, 201
6
, 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
...
...
@@ -97,11 +97,13 @@ class SocketOutputStream extends FileOutputStream
*/
private
void
socketWrite
(
byte
b
[],
int
off
,
int
len
)
throws
IOException
{
if
(
len
<=
0
||
off
<
0
||
off
+
len
>
b
.
length
)
{
if
(
len
<=
0
||
off
<
0
||
len
>
b
.
length
-
off
)
{
if
(
len
==
0
)
{
return
;
}
throw
new
ArrayIndexOutOfBoundsException
();
throw
new
ArrayIndexOutOfBoundsException
(
"len == "
+
len
+
" off == "
+
off
+
" buffer length == "
+
b
.
length
);
}
FileDescriptor
fd
=
impl
.
acquireFD
();
...
...
src/solaris/native/java/net/SocketOutputStream.c
浏览文件 @
0e232e1d
...
...
@@ -103,6 +103,9 @@ Java_java_net_SocketOutputStream_socketWrite0(JNIEnv *env, jobject this,
int
llen
=
chunkLen
;
(
*
env
)
->
GetByteArrayRegion
(
env
,
data
,
off
,
chunkLen
,
(
jbyte
*
)
bufP
);
if
((
*
env
)
->
ExceptionCheck
(
env
))
{
break
;
}
else
{
while
(
llen
>
0
)
{
int
n
=
NET_Send
(
fd
,
bufP
+
loff
,
llen
,
0
);
if
(
n
>
0
)
{
...
...
@@ -129,6 +132,7 @@ Java_java_net_SocketOutputStream_socketWrite0(JNIEnv *env, jobject this,
len
-=
chunkLen
;
off
+=
chunkLen
;
}
}
if
(
bufP
!=
BUF
)
{
free
(
bufP
);
...
...
src/windows/native/java/net/SocketOutputStream.c
浏览文件 @
0e232e1d
/*
* Copyright (c) 1997, 20
08
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 20
16
, 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
...
...
@@ -100,7 +100,9 @@ Java_java_net_SocketOutputStream_socketWrite0(JNIEnv *env, jobject this,
int
retry
=
0
;
(
*
env
)
->
GetByteArrayRegion
(
env
,
data
,
off
,
chunkLen
,
(
jbyte
*
)
bufP
);
if
((
*
env
)
->
ExceptionCheck
(
env
))
{
break
;
}
else
{
while
(
llen
>
0
)
{
int
n
=
send
(
fd
,
bufP
+
loff
,
llen
,
0
);
if
(
n
>
0
)
{
...
...
@@ -161,6 +163,7 @@ Java_java_net_SocketOutputStream_socketWrite0(JNIEnv *env, jobject this,
len
-=
chunkLen
;
off
+=
chunkLen
;
}
}
if
(
bufP
!=
BUF
)
{
free
(
bufP
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录