Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_corba
提交
eea025f3
D
dragonwell8_corba
项目概览
openanolis
/
dragonwell8_corba
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_corba
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
eea025f3
编写于
8月 08, 2016
作者:
A
asaha
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
fbbe7192
250f85e9
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
88 addition
and
40 deletion
+88
-40
.hgtags
.hgtags
+12
-0
LICENSE
LICENSE
+3
-3
src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
...are/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
+73
-37
未找到文件。
.hgtags
浏览文件 @
eea025f3
...
...
@@ -670,4 +670,16 @@ d123c31c3bc21ccf02ac7368f5476dd9975e15e3 jdk8u111-b01
981c4d9dab16b3fa7333e5baa5497c299acd5172 jdk8u111-b02
893adc105044c14abfb54de32a79f2f21981cafa jdk8u111-b03
ec7b9aafd7e1e9763925e8b794834612bbe0e19b jdk8u111-b04
3a25f8a752524bad7e78800158c485b890be3982 jdk8u111-b05
d5dabec41733e59f00dd456f88fb00b3803bed8b jdk8u111-b06
d8a1e50ce110d18b3ad01ee5c997425bfe90b2a1 jdk8u111-b07
560812b6d1948df7794f22840e4e3976258b034e jdk8u111-b08
b87d82f5c33dfb55bfc81254044f28eea5d7424a jdk8u112-b00
1f2394102288d9073652064784e31a3f52fc5d4b jdk8u112-b01
40c934289deefd68915f6519d71a4e315c69117a jdk8u112-b02
ddb3a8afe0ad50e04d360efa96aee78cb599ea72 jdk8u112-b03
1d0047d03f04c0c15c7856e0f177b9e15e94a692 jdk8u112-b04
b6cdfd0b4a9cff1ed1bb43ef7fb21dc4d2dfe7d8 jdk8u112-b06
9d09ca09ea33e6af774914606f94960e5af4fc9b jdk8u112-b07
0ac6b67980512ce025a280d42c05156293613dbb jdk8u112-b08
3a25f8a752524bad7e78800158c485b890be3982 jdk8u121-b00
LICENSE
浏览文件 @
eea025f3
...
...
@@ -3,7 +3,7 @@ The GNU General Public License (GPL)
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
9 Temple Place, Suite 330, Boston, MA 02111-1307
USA
5
1 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
...
...
@@ -287,8 +287,8 @@ pointer to where the full notice is found.
more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59
Temple Place, Suite 330, Boston, MA 02111-1307 USA
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
...
...
src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
浏览文件 @
eea025f3
...
...
@@ -2230,7 +2230,7 @@ public class IIOPInputStream
* REVISIT -- This code doesn't do what the comment says to when
* getField() is null!
*/
private
void
inputClassFields
(
Object
o
,
Class
cl
,
private
void
inputClassFields
(
Object
o
,
final
Class
<?>
cl
,
ObjectStreamField
[]
fields
,
com
.
sun
.
org
.
omg
.
SendingContext
.
CodeBase
sender
)
throws
InvalidClassException
,
StreamCorruptedException
,
...
...
@@ -2264,21 +2264,31 @@ public class IIOPInputStream
}
try
{
Class
fieldCl
=
fields
[
i
].
getClazz
();
Class
<?>
fieldCl
=
fields
[
i
].
getClazz
();
if
((
objectValue
!=
null
)
&&
(!
fieldCl
.
isAssignableFrom
(
objectValue
.
getClass
())))
{
throw
new
IllegalArgumentException
(
"Field mismatch"
);
}
Field
classField
=
null
;
Field
declaredClassField
=
null
;
final
String
inputStreamFieldName
=
fields
[
i
].
getName
();
try
{
classField
=
cl
.
getDeclaredField
(
fields
[
i
].
getName
());
}
catch
(
NoSuchFieldException
nsfEx
)
{
throw
new
IllegalArgumentException
(
nsfEx
);
declaredClassField
=
getDeclaredField
(
cl
,
inputStreamFieldName
);
}
catch
(
PrivilegedActionException
paEx
)
{
throw
new
IllegalArgumentException
(
(
NoSuchFieldException
)
paEx
.
getException
());
}
catch
(
SecurityException
secEx
)
{
throw
new
IllegalArgumentException
(
secEx
.
getCause
());
throw
new
IllegalArgumentException
(
secEx
);
}
catch
(
NullPointerException
npEx
)
{
continue
;
}
catch
(
NoSuchFieldException
e
)
{
continue
;
}
if
(
declaredClassField
==
null
)
{
continue
;
}
Class
<?>
declaredFieldClass
=
c
lassField
.
getType
();
Class
<?>
declaredFieldClass
=
declaredC
lassField
.
getType
();
// check input field type is a declared field type
// input field is a subclass of the declared field
...
...
@@ -2291,15 +2301,24 @@ public class IIOPInputStream
}
bridge
.
putObject
(
o
,
fields
[
i
].
getFieldID
(),
objectValue
)
;
// reflective code: fields[i].getField().set( o, objectValue ) ;
}
catch
(
IllegalArgumentException
e
)
{
ClassCastException
exc
=
new
ClassCastException
(
"Assigning instance of class "
+
objectValue
.
getClass
().
getName
()
+
" to field "
+
currentClassDesc
.
getName
()
+
'#'
+
fields
[
i
].
getField
().
getName
());
exc
.
initCause
(
e
)
;
throw
exc
;
}
catch
(
IllegalArgumentException
iaEx
)
{
String
objectValueClassName
=
"null"
;
String
currentClassDescClassName
=
"null"
;
String
fieldName
=
"null"
;
if
(
objectValue
!=
null
)
{
objectValueClassName
=
objectValue
.
getClass
().
getName
();
}
if
(
currentClassDesc
!=
null
)
{
currentClassDescClassName
=
currentClassDesc
.
getName
();
}
if
(
fields
[
i
]
!=
null
&&
fields
[
i
].
getField
()
!=
null
)
{
fieldName
=
fields
[
i
].
getField
().
getName
();
}
ClassCastException
ccEx
=
new
ClassCastException
(
"Assigning instance of class "
+
objectValueClassName
+
" to field "
+
currentClassDescClassName
+
'#'
+
fieldName
);
ccEx
.
initCause
(
iaEx
)
;
throw
ccEx
;
}
}
// end : for loop
}
...
...
@@ -2595,9 +2614,9 @@ public class IIOPInputStream
}
private
static
void
setObjectField
(
Object
o
,
Class
c
,
String
fieldName
,
Object
v
)
{
private
static
void
setObjectField
(
Object
o
,
Class
<?>
c
,
String
fieldName
,
Object
v
)
{
try
{
Field
fld
=
c
.
getDeclaredField
(
fieldName
)
;
Field
fld
=
getDeclaredField
(
c
,
fieldName
)
;
Class
fieldCl
=
fld
.
getType
();
if
(
v
!=
null
&&
!
fieldCl
.
isInstance
(
v
))
{
throw
new
Exception
();
...
...
@@ -2617,10 +2636,10 @@ public class IIOPInputStream
}
}
private
static
void
setBooleanField
(
Object
o
,
Class
c
,
String
fieldName
,
boolean
v
)
private
static
void
setBooleanField
(
Object
o
,
Class
<?>
c
,
String
fieldName
,
boolean
v
)
{
try
{
Field
fld
=
c
.
getDeclaredField
(
fieldName
)
;
Field
fld
=
getDeclaredField
(
c
,
fieldName
)
;
if
((
fld
!=
null
)
&&
(
fld
.
getType
()
==
Boolean
.
TYPE
))
{
long
key
=
bridge
.
objectFieldOffset
(
fld
)
;
bridge
.
putBoolean
(
o
,
key
,
v
)
;
...
...
@@ -2640,10 +2659,10 @@ public class IIOPInputStream
}
}
private
static
void
setByteField
(
Object
o
,
Class
c
,
String
fieldName
,
byte
v
)
private
static
void
setByteField
(
Object
o
,
Class
<?>
c
,
String
fieldName
,
byte
v
)
{
try
{
Field
fld
=
c
.
getDeclaredField
(
fieldName
)
;
Field
fld
=
getDeclaredField
(
c
,
fieldName
)
;
if
((
fld
!=
null
)
&&
(
fld
.
getType
()
==
Byte
.
TYPE
))
{
long
key
=
bridge
.
objectFieldOffset
(
fld
)
;
bridge
.
putByte
(
o
,
key
,
v
)
;
...
...
@@ -2663,10 +2682,10 @@ public class IIOPInputStream
}
}
private
static
void
setCharField
(
Object
o
,
Class
c
,
String
fieldName
,
char
v
)
private
static
void
setCharField
(
Object
o
,
Class
<?>
c
,
String
fieldName
,
char
v
)
{
try
{
Field
fld
=
c
.
getDeclaredField
(
fieldName
)
;
Field
fld
=
getDeclaredField
(
c
,
fieldName
)
;
if
((
fld
!=
null
)
&&
(
fld
.
getType
()
==
Character
.
TYPE
))
{
long
key
=
bridge
.
objectFieldOffset
(
fld
)
;
bridge
.
putChar
(
o
,
key
,
v
)
;
...
...
@@ -2686,10 +2705,10 @@ public class IIOPInputStream
}
}
private
static
void
setShortField
(
Object
o
,
Class
c
,
String
fieldName
,
short
v
)
private
static
void
setShortField
(
Object
o
,
Class
<?>
c
,
String
fieldName
,
short
v
)
{
try
{
Field
fld
=
c
.
getDeclaredField
(
fieldName
)
;
Field
fld
=
getDeclaredField
(
c
,
fieldName
)
;
if
((
fld
!=
null
)
&&
(
fld
.
getType
()
==
Short
.
TYPE
))
{
long
key
=
bridge
.
objectFieldOffset
(
fld
)
;
bridge
.
putShort
(
o
,
key
,
v
)
;
...
...
@@ -2709,10 +2728,10 @@ public class IIOPInputStream
}
}
private
static
void
setIntField
(
Object
o
,
Class
c
,
String
fieldName
,
int
v
)
private
static
void
setIntField
(
Object
o
,
final
Class
<?>
c
,
final
String
fieldName
,
int
v
)
{
try
{
Field
fld
=
c
.
getDeclaredField
(
fieldName
)
;
Field
fld
=
getDeclaredField
(
c
,
fieldName
)
;
if
((
fld
!=
null
)
&&
(
fld
.
getType
()
==
Integer
.
TYPE
))
{
long
key
=
bridge
.
objectFieldOffset
(
fld
)
;
bridge
.
putInt
(
o
,
key
,
v
)
;
...
...
@@ -2732,10 +2751,10 @@ public class IIOPInputStream
}
}
private
static
void
setLongField
(
Object
o
,
Class
c
,
String
fieldName
,
long
v
)
private
static
void
setLongField
(
Object
o
,
Class
<?>
c
,
String
fieldName
,
long
v
)
{
try
{
Field
fld
=
c
.
getDeclaredField
(
fieldName
)
;
Field
fld
=
getDeclaredField
(
c
,
fieldName
)
;
if
((
fld
!=
null
)
&&
(
fld
.
getType
()
==
Long
.
TYPE
))
{
long
key
=
bridge
.
objectFieldOffset
(
fld
)
;
bridge
.
putLong
(
o
,
key
,
v
)
;
...
...
@@ -2755,10 +2774,10 @@ public class IIOPInputStream
}
}
private
static
void
setFloatField
(
Object
o
,
Class
c
,
String
fieldName
,
float
v
)
private
static
void
setFloatField
(
Object
o
,
Class
<?>
c
,
String
fieldName
,
float
v
)
{
try
{
Field
fld
=
c
.
getDeclaredField
(
fieldName
)
;
Field
fld
=
getDeclaredField
(
c
,
fieldName
)
;
if
((
fld
!=
null
)
&&
(
fld
.
getType
()
==
Float
.
TYPE
))
{
long
key
=
bridge
.
objectFieldOffset
(
fld
)
;
bridge
.
putFloat
(
o
,
key
,
v
)
;
...
...
@@ -2778,10 +2797,10 @@ public class IIOPInputStream
}
}
private
static
void
setDoubleField
(
Object
o
,
Class
c
,
String
fieldName
,
double
v
)
private
static
void
setDoubleField
(
Object
o
,
Class
<?>
c
,
String
fieldName
,
double
v
)
{
try
{
Field
fld
=
c
.
getDeclaredField
(
fieldName
)
;
Field
fld
=
getDeclaredField
(
c
,
fieldName
)
;
if
((
fld
!=
null
)
&&
(
fld
.
getType
()
==
Double
.
TYPE
))
{
long
key
=
bridge
.
objectFieldOffset
(
fld
)
;
bridge
.
putDouble
(
o
,
key
,
v
)
;
...
...
@@ -2801,6 +2820,23 @@ public class IIOPInputStream
}
}
private
static
Field
getDeclaredField
(
final
Class
<?>
c
,
final
String
fieldName
)
throws
PrivilegedActionException
,
NoSuchFieldException
,
SecurityException
{
if
(
System
.
getSecurityManager
()
==
null
)
{
return
c
.
getDeclaredField
(
fieldName
);
}
else
{
return
AccessController
.
doPrivileged
(
new
PrivilegedExceptionAction
<
Field
>()
{
public
Field
run
()
throws
NoSuchFieldException
{
return
c
.
getDeclaredField
(
fieldName
);
}
});
}
}
/**
* This class maintains a map of stream position to
* an Object currently being deserialized. It is used
...
...
@@ -2811,12 +2847,12 @@ public class IIOPInputStream
*/
static
class
ActiveRecursionManager
{
private
Map
offsetToObjectMap
;
private
Map
<
Integer
,
Object
>
offsetToObjectMap
;
public
ActiveRecursionManager
()
{
// A hash map is unsynchronized and allows
// null values
offsetToObjectMap
=
new
HashMap
();
offsetToObjectMap
=
new
HashMap
<>
();
}
// Called right after allocating a new object.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录