Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
71bdd8a6
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看板
提交
71bdd8a6
编写于
10月 10, 2013
作者:
L
lana
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
4fc0ba96
9f4b6fbc
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
254 addition
and
22 deletion
+254
-22
src/share/classes/java/lang/reflect/Array.java
src/share/classes/java/lang/reflect/Array.java
+10
-7
src/share/classes/java/lang/reflect/MalformedParametersException.java
...asses/java/lang/reflect/MalformedParametersException.java
+12
-0
test/java/lang/Class/forName/arrayClass/Class1.java
test/java/lang/Class/forName/arrayClass/Class1.java
+24
-0
test/java/lang/Class/forName/arrayClass/Class2.java
test/java/lang/Class/forName/arrayClass/Class2.java
+24
-0
test/java/lang/Class/forName/arrayClass/Class3.java
test/java/lang/Class/forName/arrayClass/Class3.java
+24
-0
test/java/lang/Class/forName/arrayClass/Class4.java
test/java/lang/Class/forName/arrayClass/Class4.java
+24
-0
test/java/lang/Class/forName/arrayClass/ExceedMaxDim.java
test/java/lang/Class/forName/arrayClass/ExceedMaxDim.java
+129
-0
test/java/lang/reflect/Array/ExceedMaxDim.java
test/java/lang/reflect/Array/ExceedMaxDim.java
+1
-1
test/javax/management/remote/mandatory/connection/IdleTimeoutTest.java
...nagement/remote/mandatory/connection/IdleTimeoutTest.java
+6
-14
未找到文件。
src/share/classes/java/lang/reflect/Array.java
浏览文件 @
71bdd8a6
...
...
@@ -55,13 +55,18 @@ class Array {
* </pre>
* </blockquote>
*
* <p>The number of dimensions of the new array must not
* exceed 255.
*
* @param componentType the {@code Class} object representing the
* component type of the new array
* @param length the length of the new array
* @return the new array
* @exception NullPointerException if the specified
* {@code componentType} parameter is null
* @exception IllegalArgumentException if componentType is {@link Void#TYPE}
* @exception IllegalArgumentException if componentType is {@link
* Void#TYPE} or if the number of dimensions of the requested array
* instance exceed 255.
* @exception NegativeArraySizeException if the specified {@code length}
* is negative
*/
...
...
@@ -85,8 +90,7 @@ class Array {
* {@code componentType}.
*
* <p>The number of dimensions of the new array must not
* exceed the number of array dimensions supported by the
* implementation (typically 255).
* exceed 255.
*
* @param componentType the {@code Class} object representing the component
* type of the new array
...
...
@@ -96,10 +100,9 @@ class Array {
* @exception NullPointerException if the specified
* {@code componentType} argument is null
* @exception IllegalArgumentException if the specified {@code dimensions}
* argument is a zero-dimensional array, or if the number of
* requested dimensions exceeds the limit on the number of array dimensions
* supported by the implementation (typically 255), or if componentType
* is {@link Void#TYPE}.
* argument is a zero-dimensional array, if componentType is {@link
* Void#TYPE}, or if the number of dimensions of the requested array
* instance exceed 255.
* @exception NegativeArraySizeException if any of the components in
* the specified {@code dimensions} argument is negative.
*/
...
...
src/share/classes/java/lang/reflect/MalformedParametersException.java
浏览文件 @
71bdd8a6
...
...
@@ -50,10 +50,22 @@ package java.lang.reflect;
*/
public
class
MalformedParametersException
extends
RuntimeException
{
/**
* Version for serialization.
*/
private
static
final
long
serialVersionUID
=
20130919L
;
/**
* Create a {@code MalformedParametersException} with an empty
* reason.
*/
public
MalformedParametersException
()
{}
/**
* Create a {@code MalformedParametersException}.
*
* @param reason The reason for the exception.
*/
public
MalformedParametersException
(
String
reason
)
{
super
(
reason
);
}
...
...
test/java/lang/Class/forName/arrayClass/Class1.java
0 → 100644
浏览文件 @
71bdd8a6
/*
* Copyright (c) 2013, 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.
*/
public
class
Class1
{}
test/java/lang/Class/forName/arrayClass/Class2.java
0 → 100644
浏览文件 @
71bdd8a6
/*
* Copyright (c) 2013, 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.
*/
public
class
Class2
{}
test/java/lang/Class/forName/arrayClass/Class3.java
0 → 100644
浏览文件 @
71bdd8a6
/*
* Copyright (c) 2013, 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.
*/
public
class
Class3
{}
test/java/lang/Class/forName/arrayClass/Class4.java
0 → 100644
浏览文件 @
71bdd8a6
/*
* Copyright (c) 2013, 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.
*/
public
class
Class4
{}
test/java/lang/Class/forName/arrayClass/ExceedMaxDim.java
0 → 100644
浏览文件 @
71bdd8a6
/*
* Copyright (c) 2013, 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.
*/
/* @test
* @bug 7044282
* @build Class1 Class2 Class3 Class4
* @run main ExceedMaxDim
* @summary Make sure you can't get an array class of dimension > 255.
*/
// Class1, Class2, Class3 and Class4 should not have been loaded prior to the
// calls to forName
public
class
ExceedMaxDim
{
//0123456789012345678901234567890123456789
private
String
brackets
=
"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["
+
"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["
+
"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["
+
"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["
+
"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["
+
"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["
+
"[[[[[[[[[[[[[["
;
private
String
name254
=
brackets
+
"Ljava.lang.String;"
;
private
String
name255
=
"["
+
name254
;
private
String
name256
=
"["
+
name255
;
private
String
name1
=
"[Ljava.lang.String;"
;
private
String
bigName
;
private
int
error
=
0
;
private
static
final
ClassLoader
IMPLICIT_LOADER
=
null
;
public
ExceedMaxDim
()
{
super
();
StringBuilder
sb
=
new
StringBuilder
(
Short
.
MAX_VALUE
+
50
);
for
(
int
i
=
0
;
i
<
Short
.
MAX_VALUE
+
20
;
i
++)
sb
.
append
(
'['
);
sb
.
append
(
"Ljava.lang.String;"
);
bigName
=
sb
.
toString
();
if
(
name256
.
lastIndexOf
(
'['
)
!=
255
)
// 256:th [
throw
new
RuntimeException
(
"Test broken"
);
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
ExceedMaxDim
test
=
new
ExceedMaxDim
();
test
.
testImplicitLoader
();
test
.
testOtherLoader
();
if
(
test
.
error
!=
0
)
throw
new
RuntimeException
(
"Test failed, was able to create array with dim > 255."
+
" See log for details."
);
}
private
void
testImplicitLoader
()
throws
Exception
{
// These four should succeed
assertSucceedForName
(
name1
,
IMPLICIT_LOADER
);
assertSucceedForName
(
name254
,
IMPLICIT_LOADER
);
assertSucceedForName
(
name255
,
IMPLICIT_LOADER
);
assertSucceedForName
(
brackets
+
"[LClass1;"
,
IMPLICIT_LOADER
);
// The following three should fail
assertFailForName
(
name256
,
IMPLICIT_LOADER
);
assertFailForName
(
bigName
,
IMPLICIT_LOADER
);
assertFailForName
(
brackets
+
"[[LClass2;"
,
IMPLICIT_LOADER
);
}
private
void
testOtherLoader
()
throws
Exception
{
ClassLoader
cl
=
ExceedMaxDim
.
class
.
getClassLoader
();
// These four should succeed
assertSucceedForName
(
name1
,
cl
);
assertSucceedForName
(
name254
,
cl
);
assertSucceedForName
(
name255
,
cl
);
assertSucceedForName
(
brackets
+
"[LClass3;"
,
cl
);
// The following three should fail
assertFailForName
(
name256
,
cl
);
assertFailForName
(
bigName
,
cl
);
assertFailForName
(
brackets
+
"[[Class4;"
,
cl
);
}
private
void
assertFailForName
(
String
name
,
ClassLoader
cl
)
{
Class
<?>
c
;
try
{
if
(
cl
==
null
)
c
=
Class
.
forName
(
name
);
else
c
=
Class
.
forName
(
name
,
true
,
cl
);
error
++;
System
.
err
.
println
(
"ERROR: could create "
+
c
);
}
catch
(
ClassNotFoundException
e
)
{
;
// ok
}
}
private
void
assertSucceedForName
(
String
name
,
ClassLoader
cl
)
{
Class
<?>
c
;
try
{
if
(
cl
==
null
)
c
=
Class
.
forName
(
name
);
else
c
=
Class
.
forName
(
name
,
true
,
cl
);
}
catch
(
ClassNotFoundException
e
)
{
error
++;
System
.
err
.
println
(
"ERROR: could not create "
+
name
);
}
}
}
test/java/lang/reflect/Array/ExceedMaxDim.java
浏览文件 @
71bdd8a6
...
...
@@ -22,7 +22,7 @@
*/
/* @test
* @bug 4100814
* @bug 4100814
7044282
* @summary Make sure you can't create an array of dimension > 256.
*/
...
...
test/javax/management/remote/mandatory/connection/IdleTimeoutTest.java
浏览文件 @
71bdd8a6
...
...
@@ -23,7 +23,7 @@
/*
* @test
* @bug 4886838 4886830
* @bug 4886838 4886830
8025204
* @summary Tests that idle timeouts happen at appropriate times
* @author Eamonn McManus
* @run clean IdleTimeoutTest
...
...
@@ -278,19 +278,11 @@ public class IdleTimeoutTest {
}
System
.
out
.
println
(
"Waiting for id list to drop ours"
);
deadline
=
System
.
currentTimeMillis
()
+
timeout
*
2
+
10000
;
while
(
true
)
{
ids
=
Arrays
.
asList
(
server
.
getConnectionIds
());
if
(!
ids
.
contains
(
connId
)
||
System
.
currentTimeMillis
()
>=
deadline
)
break
;
Thread
.
sleep
(
500
);
}
if
(
ids
.
contains
(
connId
))
{
System
.
out
.
println
(
"Client id still in list after "
+
"deadline: "
+
ids
);
return
false
;
}
// pass or timed out by test harness - see 8025204
do
{
Thread
.
sleep
(
100
);
ids
=
Arrays
.
asList
(
server
.
getConnectionIds
());
}
while
(
ids
.
contains
(
connId
));
conn
.
getDefaultDomain
();
if
(
connId
.
equals
(
client
.
getConnectionId
()))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录