Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
5184911a
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看板
提交
5184911a
编写于
1月 09, 2018
作者:
C
coffeys
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
744ec875
c4149916
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
265 addition
and
15 deletion
+265
-15
.hgtags
.hgtags
+1
-0
src/share/classes/sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl.java
...ect/generics/reflectiveObjects/ParameterizedTypeImpl.java
+2
-2
src/share/native/java/util/zip/Deflater.c
src/share/native/java/util/zip/Deflater.c
+3
-8
src/share/native/java/util/zip/zlib/deflate.c
src/share/native/java/util/zip/zlib/deflate.c
+2
-4
src/share/native/java/util/zip/zlib/patches/ChangeLog_java
src/share/native/java/util/zip/zlib/patches/ChangeLog_java
+2
-0
test/java/lang/reflect/Generics/TestGenericReturnTypeToString.java
.../lang/reflect/Generics/TestGenericReturnTypeToString.java
+135
-0
test/java/util/zip/InflateIn_DeflateOut.java
test/java/util/zip/InflateIn_DeflateOut.java
+120
-1
未找到文件。
.hgtags
浏览文件 @
5184911a
...
...
@@ -856,5 +856,6 @@ c9254e01820639526f803dbe05080fce0d33db98 jdk8u162-b08
1d2ee5e60df1c3bc889c92154d839bfe73077f66 jdk8u162-b10
95df717479b19f5ea244afc67434827f2f851287 jdk8u162-b11
ddae5cb11d6c04130b8002b852bc7f80e0c8bcd2 jdk8u162-b12
8e40acfcc41a631f5922824712d4336742652eac jdk8u162-b31
b6195815c4bbbf275f1aefd337d805eb66f2b5b8 jdk8u171-b00
f1792a59f1fa20e47fe5d4561754012440564bec jdk8u171-b01
src/share/classes/sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl.java
浏览文件 @
5184911a
...
...
@@ -212,7 +212,7 @@ public class ParameterizedTypeImpl implements ParameterizedType {
else
sb
.
append
(
ownerType
.
toString
());
sb
.
append
(
"
.
"
);
sb
.
append
(
"
$
"
);
if
(
ownerType
instanceof
ParameterizedTypeImpl
)
{
// Find simple name of nested type by removing the
...
...
@@ -220,7 +220,7 @@ public class ParameterizedTypeImpl implements ParameterizedType {
sb
.
append
(
rawType
.
getName
().
replace
(
((
ParameterizedTypeImpl
)
ownerType
).
rawType
.
getName
()
+
"$"
,
""
));
}
else
sb
.
append
(
rawType
.
get
Name
());
sb
.
append
(
rawType
.
getSimple
Name
());
}
else
sb
.
append
(
rawType
.
getName
());
...
...
src/share/native/java/util/zip/Deflater.c
浏览文件 @
5184911a
/*
* Copyright (c) 1997, 201
4
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
7
, 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
...
...
@@ -164,17 +164,14 @@ Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
res
=
deflateParams
(
strm
,
level
,
strategy
);
(
*
env
)
->
ReleasePrimitiveArrayCritical
(
env
,
b
,
out_buf
,
0
);
(
*
env
)
->
ReleasePrimitiveArrayCritical
(
env
,
this_buf
,
in_buf
,
0
);
switch
(
res
)
{
case
Z_OK
:
(
*
env
)
->
SetBooleanField
(
env
,
this
,
setParamsID
,
JNI_FALSE
);
case
Z_BUF_ERROR
:
this_off
+=
this_len
-
strm
->
avail_in
;
(
*
env
)
->
SetIntField
(
env
,
this
,
offID
,
this_off
);
(
*
env
)
->
SetIntField
(
env
,
this
,
lenID
,
strm
->
avail_in
);
return
(
jint
)
(
len
-
strm
->
avail_out
);
case
Z_BUF_ERROR
:
(
*
env
)
->
SetBooleanField
(
env
,
this
,
setParamsID
,
JNI_FALSE
);
return
0
;
default:
JNU_ThrowInternalError
(
env
,
strm
->
msg
);
return
0
;
...
...
@@ -203,18 +200,16 @@ Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
res
=
deflate
(
strm
,
finish
?
Z_FINISH
:
flush
);
(
*
env
)
->
ReleasePrimitiveArrayCritical
(
env
,
b
,
out_buf
,
0
);
(
*
env
)
->
ReleasePrimitiveArrayCritical
(
env
,
this_buf
,
in_buf
,
0
);
switch
(
res
)
{
case
Z_STREAM_END
:
(
*
env
)
->
SetBooleanField
(
env
,
this
,
finishedID
,
JNI_TRUE
);
/* fall through */
case
Z_OK
:
case
Z_BUF_ERROR
:
this_off
+=
this_len
-
strm
->
avail_in
;
(
*
env
)
->
SetIntField
(
env
,
this
,
offID
,
this_off
);
(
*
env
)
->
SetIntField
(
env
,
this
,
lenID
,
strm
->
avail_in
);
return
len
-
strm
->
avail_out
;
case
Z_BUF_ERROR
:
return
0
;
default:
JNU_ThrowInternalError
(
env
,
strm
->
msg
);
return
0
;
...
...
src/share/native/java/util/zip/zlib/deflate.c
浏览文件 @
5184911a
...
...
@@ -505,8 +505,6 @@ int ZEXPORT deflateResetKeep (strm)
s
->
pending
=
0
;
s
->
pending_out
=
s
->
pending_buf
;
s
->
high_water
=
0
;
/* reset to its inital value 0 */
if
(
s
->
wrap
<
0
)
{
s
->
wrap
=
-
s
->
wrap
;
/* was made negative by deflate(..., Z_FINISH); */
}
...
...
@@ -520,7 +518,7 @@ int ZEXPORT deflateResetKeep (strm)
s
->
wrap
==
2
?
crc32
(
0L
,
Z_NULL
,
0
)
:
#endif
adler32
(
0L
,
Z_NULL
,
0
);
s
->
last_flush
=
Z_NO_FLUSH
;
s
->
last_flush
=
-
2
;
_tr_init
(
s
);
...
...
@@ -613,7 +611,7 @@ int ZEXPORT deflateParams(strm, level, strategy)
func
=
configuration_table
[
s
->
level
].
func
;
if
((
strategy
!=
s
->
strategy
||
func
!=
configuration_table
[
level
].
func
)
&&
s
->
high_water
)
{
s
->
last_flush
!=
-
2
)
{
/* Flush the last buffer: */
int
err
=
deflate
(
strm
,
Z_BLOCK
);
if
(
err
==
Z_STREAM_ERROR
)
...
...
src/share/native/java/util/zip/zlib/patches/ChangeLog_java
浏览文件 @
5184911a
...
...
@@ -78,6 +78,8 @@
(6) deflate.c #8184306
(7) deflate.c undo (6), replaced withe the official zlib repo fix see#305/#f969409
*** 503,512 ****
--- 503,514 ----
...
...
test/java/lang/reflect/Generics/TestGenericReturnTypeToString.java
0 → 100644
浏览文件 @
5184911a
/*
* Copyright (c) 2016, 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* 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.
*/
/*
* @test
* @bug 8054213
* @summary Check that toString method works properly for generic return type
* obtained via reflection
* @run main TestGenericReturnTypeToString
*/
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.reflect.Method
;
import
java.util.List
;
public
class
TestGenericReturnTypeToString
{
public
static
void
main
(
String
[]
args
)
{
boolean
hasFailures
=
false
;
for
(
Method
method
:
TestGenericReturnTypeToString
.
class
.
getMethods
())
{
if
(
method
.
isAnnotationPresent
(
ExpectedGenericString
.
class
))
{
ExpectedGenericString
es
=
method
.
getAnnotation
(
ExpectedGenericString
.
class
);
String
result
=
method
.
getGenericReturnType
().
toString
();
if
(!
es
.
value
().
equals
(
result
))
{
hasFailures
=
true
;
System
.
err
.
println
(
"Unexpected result of "
+
"getGenericReturnType().toString() "
+
" for "
+
method
.
getName
()
+
" expected: "
+
es
.
value
()
+
" actual: "
+
result
);
}
}
if
(
hasFailures
)
{
throw
new
RuntimeException
(
"Test failed"
);
}
}
}
@ExpectedGenericString
(
"TestGenericReturnTypeToString$"
+
"FirstInnerClassGeneric<Dummy>$SecondInnerClassGeneric<Dummy>"
)
public
FirstInnerClassGeneric
<
Dummy
>.
SecondInnerClassGeneric
<
Dummy
>
foo1
()
{
return
null
;
}
@ExpectedGenericString
(
"TestGenericReturnTypeToString$"
+
"FirstInnerClassGeneric<Dummy>$SecondInnerClass"
)
public
FirstInnerClassGeneric
<
Dummy
>.
SecondInnerClass
foo2
()
{
return
null
;
}
@ExpectedGenericString
(
"TestGenericReturnTypeToString$"
+
"FirstInnerClass$SecondInnerClassGeneric<Dummy>"
)
public
FirstInnerClass
.
SecondInnerClassGeneric
<
Dummy
>
foo3
()
{
return
null
;
}
@ExpectedGenericString
(
"class TestGenericReturnTypeToString$"
+
"FirstInnerClass$SecondInnerClass"
)
public
FirstInnerClass
.
SecondInnerClass
foo4
()
{
return
null
;
}
@ExpectedGenericString
(
"java.util.List<java.lang.String>"
)
public
java
.
util
.
List
<
java
.
lang
.
String
>
foo5
()
{
return
null
;
}
@ExpectedGenericString
(
"interface TestGenericReturnTypeToString$"
+
"FirstInnerClass$Interface"
)
public
FirstInnerClass
.
Interface
foo6
()
{
return
null
;
}
@ExpectedGenericString
(
"TestGenericReturnTypeToString$"
+
"FirstInnerClass$InterfaceGeneric<Dummy>"
)
public
FirstInnerClass
.
InterfaceGeneric
<
Dummy
>
foo7
()
{
return
null
;
}
public
static
class
FirstInnerClass
{
public
class
SecondInnerClassGeneric
<
T
>
{
}
public
class
SecondInnerClass
{
}
interface
Interface
{
}
interface
InterfaceGeneric
<
T
>
{
}
}
public
class
FirstInnerClassGeneric
<
T
>
{
public
class
SecondInnerClassGeneric
<
T
>
{
}
public
class
SecondInnerClass
{
}
}
}
@Retention
(
RetentionPolicy
.
RUNTIME
)
@interface
ExpectedGenericString
{
String
value
();
}
class
Dummy
{
}
test/java/util/zip/InflateIn_DeflateOut.java
浏览文件 @
5184911a
...
...
@@ -23,7 +23,7 @@
/**
* @test
* @bug 4206909 4813885
* @bug 4206909 4813885
8189789
* @summary Test basic functionality of DeflaterOutputStream/InflaterInputStream and GZIPOutputStream/GZIPInputStream, including flush
*/
...
...
@@ -146,6 +146,47 @@ public class InflateIn_DeflateOut {
check
(
Arrays
.
equals
(
data
,
buf
));
}
private
static
void
TestFlushableGZIPOutputStream
()
throws
Throwable
{
Random
random
=
new
Random
(
new
Date
().
getTime
());
ByteArrayOutputStream
byteOutStream
=
new
ByteArrayOutputStream
();
OutputStream
output
=
new
FlushableGZIPOutputStream
(
byteOutStream
);
byte
[]
data
=
new
byte
[
random
.
nextInt
(
1024
*
1024
)];
byte
[]
buf
=
new
byte
[
data
.
length
];
random
.
nextBytes
(
data
);
output
.
write
(
data
);
for
(
int
i
=
0
;
i
<
data
.
length
;
i
++)
{
output
.
write
(
data
[
i
]);
}
output
.
flush
();
for
(
int
i
=
0
;
i
<
data
.
length
;
i
++)
{
output
.
write
(
data
[
i
]);
}
output
.
write
(
data
);
output
.
close
();
ByteArrayInputStream
byteInStream
=
new
ByteArrayInputStream
(
byteOutStream
.
toByteArray
());
GZIPInputStream
gzis
=
new
GZIPInputStream
(
byteInStream
);
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
int
numRead
;
byte
[]
b
=
new
byte
[
4
*
1024
];
try
{
while
((
numRead
=
gzis
.
read
(
buf
))
>=
0
)
{
baos
.
write
(
b
,
0
,
numRead
);
}
}
finally
{
baos
.
close
();
}
byte
[]
decompressedBytes
=
baos
.
toByteArray
();
check
(
decompressedBytes
.
length
==
data
.
length
*
4
);
}
private
static
void
check
(
InputStream
is
,
OutputStream
os
)
throws
Throwable
{
...
...
@@ -267,6 +308,7 @@ public class InflateIn_DeflateOut {
LineOrientedProtocol
();
GZWriteFlushRead
();
GZLineOrientedProtocol
();
TestFlushableGZIPOutputStream
();
}
//--------------------- Infrastructure ---------------------------
...
...
@@ -284,3 +326,80 @@ public class InflateIn_DeflateOut {
System
.
out
.
println
(
"\nPassed = "
+
passed
+
" failed = "
+
failed
);
if
(
failed
>
0
)
throw
new
AssertionError
(
"Some tests failed"
);}
}
class
FlushableGZIPOutputStream
extends
GZIPOutputStream
{
public
FlushableGZIPOutputStream
(
OutputStream
os
)
throws
IOException
{
super
(
os
);
}
private
static
final
byte
[]
EMPTYBYTEARRAY
=
new
byte
[
0
];
private
boolean
hasData
=
false
;
/**
* Here we make sure we have received data, so that the header has been for
* sure written to the output stream already.
*/
@Override
public
synchronized
void
write
(
byte
[]
bytes
,
int
i
,
int
i1
)
throws
IOException
{
super
.
write
(
bytes
,
i
,
i1
);
hasData
=
true
;
}
@Override
public
synchronized
void
write
(
int
i
)
throws
IOException
{
super
.
write
(
i
);
hasData
=
true
;
}
@Override
public
synchronized
void
write
(
byte
[]
bytes
)
throws
IOException
{
super
.
write
(
bytes
);
hasData
=
true
;
}
@Override
public
synchronized
void
flush
()
throws
IOException
{
if
(!
hasData
)
{
return
;
// do not allow the gzip header to be flushed on its own
}
// trick the deflater to flush
/**
* Now this is tricky: We force the Deflater to flush its data by
* switching compression level. As yet, a perplexingly simple workaround
* for
* http://developer.java.sun.com/developer/bugParade/bugs/4255743.html
*/
if
(!
def
.
finished
())
{
def
.
setInput
(
EMPTYBYTEARRAY
,
0
,
0
);
def
.
setLevel
(
Deflater
.
NO_COMPRESSION
);
deflate
();
def
.
setLevel
(
Deflater
.
DEFAULT_COMPRESSION
);
deflate
();
out
.
flush
();
}
hasData
=
false
;
// no more data to flush
}
/*
* Keep on calling deflate until it runs dry. The default implementation
* only does it once and can therefore hold onto data when they need to be
* flushed out.
*/
@Override
protected
void
deflate
()
throws
IOException
{
int
len
;
do
{
len
=
def
.
deflate
(
buf
,
0
,
buf
.
length
);
if
(
len
>
0
)
{
out
.
write
(
buf
,
0
,
len
);
}
}
while
(
len
!=
0
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录