Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_corba
提交
539c8ceb
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,发现更多精彩内容 >>
提交
539c8ceb
编写于
1月 16, 2014
作者:
C
coffeys
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
ac5bd095
ae7fcc4a
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
331 addition
and
69 deletion
+331
-69
src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java
src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java
+12
-5
src/share/classes/com/sun/corba/se/impl/encoding/EncapsInputStream.java
...ses/com/sun/corba/se/impl/encoding/EncapsInputStream.java
+3
-4
src/share/classes/com/sun/corba/se/impl/encoding/EncapsOutputStream.java
...es/com/sun/corba/se/impl/encoding/EncapsOutputStream.java
+8
-6
src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeInputStream.java
...s/com/sun/corba/se/impl/encoding/TypeCodeInputStream.java
+9
-5
src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeOutputStream.java
.../com/sun/corba/se/impl/encoding/TypeCodeOutputStream.java
+5
-3
src/share/classes/com/sun/corba/se/impl/interceptors/CDREncapsCodec.java
...es/com/sun/corba/se/impl/interceptors/CDREncapsCodec.java
+5
-2
src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
...are/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
+6
-6
src/share/classes/com/sun/corba/se/impl/io/InputStreamHook.java
...are/classes/com/sun/corba/se/impl/io/InputStreamHook.java
+1
-1
src/share/classes/com/sun/corba/se/impl/ior/EncapsulationUtility.java
...asses/com/sun/corba/se/impl/ior/EncapsulationUtility.java
+4
-2
src/share/classes/com/sun/corba/se/impl/ior/ObjectKeyFactoryImpl.java
...asses/com/sun/corba/se/impl/ior/ObjectKeyFactoryImpl.java
+4
-2
src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileImpl.java
...asses/com/sun/corba/se/impl/ior/iiop/IIOPProfileImpl.java
+4
-2
src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryDynamicBase.java
...orba/se/impl/presentation/rmi/StubFactoryDynamicBase.java
+19
-5
src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryFactoryProxyImpl.java
...se/impl/presentation/rmi/StubFactoryFactoryProxyImpl.java
+12
-4
src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java
...ba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java
+4
-3
src/share/classes/com/sun/corba/se/impl/protocol/SharedCDRClientRequestDispatcherImpl.java
...e/impl/protocol/SharedCDRClientRequestDispatcherImpl.java
+26
-9
src/share/classes/com/sun/corba/se/impl/resolver/INSURLOperationImpl.java
...s/com/sun/corba/se/impl/resolver/INSURLOperationImpl.java
+5
-3
src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContexts.java
.../com/sun/corba/se/spi/servicecontext/ServiceContexts.java
+9
-6
src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java
...share/classes/org/omg/CORBA_2_3/portable/InputStream.java
+42
-1
src/share/classes/sun/corba/EncapsInputStreamFactory.java
src/share/classes/sun/corba/EncapsInputStreamFactory.java
+153
-0
未找到文件。
src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java
浏览文件 @
539c8ceb
...
...
@@ -82,11 +82,18 @@ public class AnyImpl extends Any
super
((
ORB
)
orb
);
}
public
org
.
omg
.
CORBA
.
portable
.
InputStream
create_input_stream
()
{
return
new
AnyInputStream
(
(
com
.
sun
.
corba
.
se
.
impl
.
encoding
.
EncapsInputStream
)
super
.
create_input_stream
());
public
org
.
omg
.
CORBA
.
portable
.
InputStream
create_input_stream
()
{
final
org
.
omg
.
CORBA
.
portable
.
InputStream
is
=
super
.
create_input_stream
();
AnyInputStream
aIS
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
AnyInputStream
>()
{
@Override
public
AnyInputStream
run
()
{
return
new
AnyInputStream
(
(
com
.
sun
.
corba
.
se
.
impl
.
encoding
.
EncapsInputStream
)
is
);
}
});
return
aIS
;
}
}
...
...
src/share/classes/com/sun/corba/se/impl/encoding/EncapsInputStream.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 2001, 20
04
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 20
13
, 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
...
...
@@ -36,11 +36,10 @@ import com.sun.corba.se.impl.encoding.OSFCodeSetRegistry;
import
com.sun.corba.se.impl.protocol.giopmsgheaders.Message
;
import
com.sun.corba.se.spi.orb.ORB
;
import
com.sun.corba.se.spi.logging.CORBALogDomains
;
import
com.sun.corba.se.impl.logging.ORBUtilSystemException
;
import
sun.corba.EncapsInputStreamFactory
;
/**
* Encapsulations are supposed to explicitly define their
* code sets and GIOP version. The original resolution to issue 2784
...
...
@@ -148,7 +147,7 @@ public class EncapsInputStream extends CDRInputStream
}
public
CDRInputStream
dup
()
{
return
new
EncapsInputStream
(
this
);
return
EncapsInputStreamFactory
.
new
EncapsInputStream
(
this
);
}
protected
CodeSetConversion
.
BTCConverter
createCharBTCConverter
()
{
...
...
src/share/classes/com/sun/corba/se/impl/encoding/EncapsOutputStream.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 2001, 20
04
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 20
13
, 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
...
...
@@ -39,6 +39,8 @@ import com.sun.corba.se.impl.encoding.BufferManagerFactory;
import
com.sun.corba.se.impl.protocol.giopmsgheaders.Message
;
import
com.sun.corba.se.impl.orbutil.ORBConstants
;
import
sun.corba.EncapsInputStreamFactory
;
/**
* Encapsulations are supposed to explicitly define their
* code sets and GIOP version. The original resolution to issue 2784
...
...
@@ -107,11 +109,11 @@ public class EncapsOutputStream extends CDROutputStream
public
org
.
omg
.
CORBA
.
portable
.
InputStream
create_input_stream
()
{
freeInternalCaches
();
return
new
EncapsInputStream
(
orb
(),
getByteBuffer
(),
getSize
(),
isLittleEndian
(),
getGIOPVersion
());
return
EncapsInputStreamFactory
.
new
EncapsInputStream
(
orb
(),
getByteBuffer
(),
getSize
(),
isLittleEndian
(),
getGIOPVersion
());
}
protected
CodeSetConversion
.
CTBConverter
createCharCTBConverter
()
{
...
...
src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeInputStream.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 2002, 20
0
3, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 20
1
3, 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
...
...
@@ -64,6 +64,8 @@ import com.sun.corba.se.impl.encoding.CDRInputStream;
import
com.sun.corba.se.impl.encoding.CDROutputStream
;
import
com.sun.corba.se.impl.encoding.MarshalInputStream
;
import
sun.corba.EncapsInputStreamFactory
;
public
class
TypeCodeInputStream
extends
EncapsInputStream
implements
TypeCodeReader
{
private
Map
typeMap
=
null
;
...
...
@@ -157,11 +159,13 @@ public class TypeCodeInputStream extends EncapsInputStream implements TypeCodeRe
// create an encapsulation using the marshal buffer
if
(
is
instanceof
CDRInputStream
)
{
encap
=
new
TypeCodeInputStream
((
ORB
)
_orb
,
encapBuffer
,
encapBuffer
.
length
,
((
CDRInputStream
)
is
).
isLittleEndian
(),
((
CDRInputStream
)
is
).
getGIOPVersion
());
encap
=
EncapsInputStreamFactory
.
newTypeCodeInputStream
((
ORB
)
_orb
,
encapBuffer
,
encapBuffer
.
length
,
((
CDRInputStream
)
is
).
isLittleEndian
(),
((
CDRInputStream
)
is
).
getGIOPVersion
());
}
else
{
encap
=
new
TypeCodeInputStream
((
ORB
)
_orb
,
encapBuffer
,
encapBuffer
.
length
);
encap
=
EncapsInputStreamFactory
.
newTypeCodeInputStream
((
ORB
)
_orb
,
encapBuffer
,
encapBuffer
.
length
);
}
encap
.
setEnclosingInputStream
(
is
);
encap
.
makeEncapsulation
();
...
...
src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeOutputStream.java
浏览文件 @
539c8ceb
...
...
@@ -61,6 +61,8 @@ import java.math.BigDecimal;
import
java.math.BigInteger
;
import
java.nio.ByteBuffer
;
import
sun.corba.EncapsInputStreamFactory
;
public
final
class
TypeCodeOutputStream
extends
EncapsOutputStream
{
private
OutputStream
enclosure
=
null
;
...
...
@@ -77,9 +79,9 @@ public final class TypeCodeOutputStream extends EncapsOutputStream
public
org
.
omg
.
CORBA
.
portable
.
InputStream
create_input_stream
()
{
//return new TypeCodeInputStream((ORB)orb(), getByteBuffer(), getIndex(), isLittleEndian());
TypeCodeInputStream
tcis
=
new
TypeCodeInputStream
((
ORB
)
orb
(),
getByteBuffer
(),
getIndex
(),
isLittleEndian
(),
getGIOPVersion
());
TypeCodeInputStream
tcis
=
EncapsInputStreamFactory
.
newTypeCodeInputStream
((
ORB
)
orb
(),
getByteBuffer
(),
getIndex
(),
isLittleEndian
(),
getGIOPVersion
());
//if (TypeCodeImpl.debug) {
//System.out.println("Created TypeCodeInputStream " + tcis + " with no parent");
//tcis.printBuffer();
...
...
src/share/classes/com/sun/corba/se/impl/interceptors/CDREncapsCodec.java
浏览文件 @
539c8ceb
...
...
@@ -33,6 +33,8 @@ import org.omg.CORBA.LocalObject;
import
com.sun.corba.se.spi.ior.iiop.GIOPVersion
;
import
com.sun.corba.se.spi.logging.CORBALogDomains
;
import
sun.corba.EncapsInputStreamFactory
;
import
com.sun.corba.se.impl.corba.AnyImpl
;
import
com.sun.corba.se.impl.encoding.EncapsInputStream
;
import
com.sun.corba.se.impl.encoding.EncapsOutputStream
;
...
...
@@ -193,8 +195,9 @@ public final class CDREncapsCodec
// it is turned into a FormatMismatch exception.
try
{
EncapsInputStream
cdrIn
=
new
EncapsInputStream
(
orb
,
data
,
data
.
length
,
giopVersion
);
EncapsInputStream
cdrIn
=
EncapsInputStreamFactory
.
newEncapsInputStream
(
orb
,
data
,
data
.
length
,
giopVersion
);
cdrIn
.
consumeEndian
();
...
...
src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
浏览文件 @
539c8ceb
...
...
@@ -370,7 +370,7 @@ public class IIOPInputStream
* @exception IOException Any of the usual Input/Output related exceptions.
* @since JDK1.1
*/
public
final
Object
readObjectDelegate
()
throws
IOException
public
final
synchronized
Object
readObjectDelegate
()
throws
IOException
{
try
{
...
...
@@ -389,7 +389,7 @@ public class IIOPInputStream
}
}
final
Object
simpleReadObject
(
Class
clz
,
final
synchronized
Object
simpleReadObject
(
Class
clz
,
String
repositoryID
,
com
.
sun
.
org
.
omg
.
SendingContext
.
CodeBase
sender
,
int
offset
)
...
...
@@ -461,7 +461,7 @@ public class IIOPInputStream
return
obj
;
}
public
final
void
simpleSkipObject
(
String
repositoryID
,
public
final
synchronized
void
simpleSkipObject
(
String
repositoryID
,
com
.
sun
.
org
.
omg
.
SendingContext
.
CodeBase
sender
)
/* throws OptionalDataException, ClassNotFoundException, IOException */
{
...
...
@@ -559,7 +559,7 @@ public class IIOPInputStream
* objects.
* @since JDK1.1
*/
public
final
void
defaultReadObjectDelegate
()
final
synchronized
void
defaultReadObjectDelegate
()
/* throws IOException, ClassNotFoundException, NotActiveException */
{
try
{
...
...
@@ -988,7 +988,7 @@ public class IIOPInputStream
}
}
private
Object
inputObject
(
Class
clz
,
private
synchronized
Object
inputObject
(
Class
clz
,
String
repositoryID
,
com
.
sun
.
org
.
omg
.
SendingContext
.
CodeBase
sender
,
int
offset
)
...
...
@@ -1317,7 +1317,7 @@ public class IIOPInputStream
* a form of custom marshaling.
*
*/
private
Object
inputObjectUsingFVD
(
Class
clz
,
private
synchronized
Object
inputObjectUsingFVD
(
Class
clz
,
String
repositoryID
,
com
.
sun
.
org
.
omg
.
SendingContext
.
CodeBase
sender
,
int
offset
)
...
...
src/share/classes/com/sun/corba/se/impl/io/InputStreamHook.java
浏览文件 @
539c8ceb
...
...
@@ -201,7 +201,7 @@ public abstract class InputStreamHook extends ObjectInputStream
readObjectState
.
endDefaultReadObject
(
this
);
}
public
abstract
void
defaultReadObjectDelegate
();
abstract
void
defaultReadObjectDelegate
();
abstract
void
readFields
(
java
.
util
.
Map
fieldToValueMap
)
throws
java
.
io
.
InvalidClassException
,
java
.
io
.
StreamCorruptedException
,
...
...
src/share/classes/com/sun/corba/se/impl/ior/EncapsulationUtility.java
浏览文件 @
539c8ceb
...
...
@@ -47,6 +47,8 @@ import com.sun.corba.se.impl.encoding.CDROutputStream ;
import
com.sun.corba.se.impl.encoding.EncapsOutputStream
;
import
com.sun.corba.se.impl.encoding.EncapsInputStream
;
import
sun.corba.EncapsInputStreamFactory
;
/**
* This static utility class contains various utility methods for reading and
* writing CDR encapsulations.
...
...
@@ -108,8 +110,8 @@ public class EncapsulationUtility
static
public
InputStream
getEncapsulationStream
(
InputStream
is
)
{
byte
[]
data
=
readOctets
(
is
)
;
EncapsInputStream
result
=
new
EncapsInputStream
(
is
.
orb
(),
data
,
data
.
length
)
;
EncapsInputStream
result
=
EncapsInputStreamFactory
.
new
EncapsInputStream
(
is
.
orb
(),
data
,
data
.
length
)
;
result
.
consumeEndian
()
;
return
result
;
}
...
...
src/share/classes/com/sun/corba/se/impl/ior/ObjectKeyFactoryImpl.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 2000, 20
0
3, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 20
1
3, 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
...
...
@@ -49,6 +49,8 @@ import com.sun.corba.se.impl.ior.ObjectKeyImpl ;
import
com.sun.corba.se.impl.logging.IORSystemException
;
import
com.sun.corba.se.impl.encoding.EncapsInputStream
;
import
sun.corba.EncapsInputStreamFactory
;
/** Based on the magic and scid, return the appropriate
* ObjectKeyTemplate. Expects to be called with a valid
...
...
@@ -217,7 +219,7 @@ public class ObjectKeyFactoryImpl implements ObjectKeyFactory
public
ObjectKey
create
(
byte
[]
key
)
{
OctetSeqHolder
osh
=
new
OctetSeqHolder
()
;
EncapsInputStream
is
=
new
EncapsInputStream
(
orb
,
key
,
key
.
length
)
;
EncapsInputStream
is
=
EncapsInputStreamFactory
.
newEncapsInputStream
(
orb
,
key
,
key
.
length
)
;
ObjectKeyTemplate
oktemp
=
create
(
is
,
fullKey
,
osh
)
;
if
(
oktemp
==
null
)
...
...
src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileImpl.java
浏览文件 @
539c8ceb
...
...
@@ -70,6 +70,8 @@ import com.sun.corba.se.impl.ior.EncapsulationUtility ;
import
com.sun.corba.se.impl.encoding.EncapsInputStream
;
import
com.sun.corba.se.impl.encoding.EncapsOutputStream
;
import
sun.corba.EncapsInputStreamFactory
;
import
com.sun.corba.se.impl.util.JDKBridge
;
import
com.sun.corba.se.impl.logging.IORSystemException
;
...
...
@@ -170,8 +172,8 @@ public class IIOPProfileImpl extends IdentifiableBase implements IIOPProfile
throw
wrapper
.
invalidTaggedProfile
()
;
}
EncapsInputStream
istr
=
new
EncapsInputStream
((
ORB
)
orb
,
profile
.
profile_data
,
profile
.
profile_data
.
length
);
EncapsInputStream
istr
=
EncapsInputStreamFactory
.
new
EncapsInputStream
((
ORB
)
orb
,
profile
.
profile_data
,
profile
.
profile_data
.
length
);
istr
.
consumeEndian
();
init
(
istr
)
;
}
...
...
src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryDynamicBase.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004,
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
...
...
@@ -25,6 +25,7 @@
package
com.sun.corba.se.impl.presentation.rmi
;
import
java.io.SerializablePermission
;
import
java.lang.reflect.InvocationHandler
;
import
java.lang.reflect.Proxy
;
...
...
@@ -38,11 +39,18 @@ public abstract class StubFactoryDynamicBase extends StubFactoryBase
{
protected
final
ClassLoader
loader
;
public
StubFactoryDynamicBase
(
PresentationManager
.
ClassData
classData
,
ClassLoader
loader
)
{
super
(
classData
)
;
private
static
Void
checkPermission
()
{
SecurityManager
sm
=
System
.
getSecurityManager
();
if
(
sm
!=
null
)
{
sm
.
checkPermission
(
new
SerializablePermission
(
"enableSubclassImplementation"
));
}
return
null
;
}
private
StubFactoryDynamicBase
(
Void
unused
,
PresentationManager
.
ClassData
classData
,
ClassLoader
loader
)
{
super
(
classData
);
// this.loader must not be null, or the newProxyInstance call
// will fail.
if
(
loader
==
null
)
{
...
...
@@ -55,5 +63,11 @@ public abstract class StubFactoryDynamicBase extends StubFactoryBase
}
}
public
StubFactoryDynamicBase
(
PresentationManager
.
ClassData
classData
,
ClassLoader
loader
)
{
this
(
checkPermission
(),
classData
,
loader
);
}
public
abstract
org
.
omg
.
CORBA
.
Object
makeStub
()
;
}
src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryFactoryProxyImpl.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004,
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
...
...
@@ -25,14 +25,22 @@
package
com.sun.corba.se.impl.presentation.rmi
;
import
java.security.AccessController
;
import
java.security.PrivilegedAction
;
import
com.sun.corba.se.spi.presentation.rmi.PresentationManager
;
public
class
StubFactoryFactoryProxyImpl
extends
StubFactoryFactoryDynamicBase
{
public
PresentationManager
.
StubFactory
makeDynamicStubFactory
(
PresentationManager
pm
,
PresentationManager
.
ClassData
classData
,
ClassLoader
classLoader
)
PresentationManager
pm
,
final
PresentationManager
.
ClassData
classData
,
final
ClassLoader
classLoader
)
{
return
new
StubFactoryProxyImpl
(
classData
,
classLoader
)
;
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
StubFactoryProxyImpl
>()
{
@Override
public
StubFactoryProxyImpl
run
()
{
return
new
StubFactoryProxyImpl
(
classData
,
classLoader
);
}
});
}
}
src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 2001, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
3
, 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
...
...
@@ -115,6 +115,7 @@ import com.sun.corba.se.impl.util.JDKBridge;
import
java.util.concurrent.ConcurrentMap
;
import
java.util.concurrent.ConcurrentHashMap
;
import
sun.corba.EncapsInputStreamFactory
;
/**
* ClientDelegate is the RMI client-side subcontract or representation
...
...
@@ -847,8 +848,8 @@ public class CorbaClientRequestDispatcherImpl
}
byte
[]
data
=
((
UnknownServiceContext
)
sc
).
getData
();
EncapsInputStream
in
=
new
EncapsInputStream
((
ORB
)
messageMediator
.
getBroker
(),
data
,
data
.
length
);
EncapsInputStreamFactory
.
new
EncapsInputStream
((
ORB
)
messageMediator
.
getBroker
(),
data
,
data
.
length
);
in
.
consumeEndian
();
String
msg
=
...
...
src/share/classes/com/sun/corba/se/impl/protocol/SharedCDRClientRequestDispatcherImpl.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 2003, 20
04
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 20
13
, 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
...
...
@@ -36,7 +36,8 @@ import java.io.IOException;
import
java.util.Iterator
;
import
java.rmi.RemoteException
;
import
java.nio.ByteBuffer
;
import
java.security.AccessController
;
import
java.security.PrivilegedAction
;
import
javax.rmi.CORBA.Util
;
import
javax.rmi.CORBA.Tie
;
...
...
@@ -111,6 +112,7 @@ import com.sun.corba.se.impl.protocol.giopmsgheaders.KeyAddr;
import
com.sun.corba.se.impl.protocol.giopmsgheaders.ProfileAddr
;
import
com.sun.corba.se.impl.protocol.giopmsgheaders.ReferenceAddr
;
import
com.sun.corba.se.impl.transport.CorbaContactInfoListIteratorImpl
;
import
com.sun.corba.se.impl.protocol.giopmsgheaders.Message
;
import
com.sun.corba.se.impl.util.JDKBridge
;
/**
...
...
@@ -156,10 +158,17 @@ public class SharedCDRClientRequestDispatcherImpl
ByteBufferWithInfo
bbwi
=
cdrOutputObject
.
getByteBufferWithInfo
();
cdrOutputObject
.
getMessageHeader
().
setSize
(
bbwi
.
byteBuffer
,
bbwi
.
getSize
());
CDRInputObject
cdrInputObject
=
new
CDRInputObject
(
orb
,
null
,
bbwi
.
byteBuffer
,
cdrOutputObject
.
getMessageHeader
());
final
ORB
inOrb
=
orb
;
final
ByteBuffer
inBuffer
=
bbwi
.
byteBuffer
;
final
Message
inMsg
=
cdrOutputObject
.
getMessageHeader
();
CDRInputObject
cdrInputObject
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
CDRInputObject
>()
{
@Override
public
CDRInputObject
run
()
{
return
new
CDRInputObject
(
inOrb
,
null
,
inBuffer
,
inMsg
);
}
});
messageMediator
.
setInputObject
(
cdrInputObject
);
cdrInputObject
.
setMessageMediator
(
messageMediator
);
...
...
@@ -192,9 +201,17 @@ public class SharedCDRClientRequestDispatcherImpl
cdrOutputObject
=
(
CDROutputObject
)
messageMediator
.
getOutputObject
();
bbwi
=
cdrOutputObject
.
getByteBufferWithInfo
();
cdrOutputObject
.
getMessageHeader
().
setSize
(
bbwi
.
byteBuffer
,
bbwi
.
getSize
());
cdrInputObject
=
new
CDRInputObject
(
orb
,
null
,
bbwi
.
byteBuffer
,
cdrOutputObject
.
getMessageHeader
());
final
ORB
inOrb2
=
orb
;
final
ByteBuffer
inBuffer2
=
bbwi
.
byteBuffer
;
final
Message
inMsg2
=
cdrOutputObject
.
getMessageHeader
();
cdrInputObject
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
CDRInputObject
>()
{
@Override
public
CDRInputObject
run
()
{
return
new
CDRInputObject
(
inOrb2
,
null
,
inBuffer2
,
inMsg2
);
}
});
messageMediator
.
setInputObject
(
cdrInputObject
);
cdrInputObject
.
setMessageMediator
(
messageMediator
);
...
...
src/share/classes/com/sun/corba/se/impl/resolver/INSURLOperationImpl.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 1998, 20
09
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 20
13
, 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
...
...
@@ -36,6 +36,8 @@ import java.util.Collections ;
import
org.omg.CosNaming.NamingContextExt
;
import
org.omg.CosNaming.NamingContextExtHelper
;
import
sun.corba.EncapsInputStreamFactory
;
import
com.sun.corba.se.spi.ior.IOR
;
import
com.sun.corba.se.spi.ior.IORTemplate
;
import
com.sun.corba.se.spi.ior.ObjectKey
;
...
...
@@ -114,8 +116,8 @@ public class INSURLOperationImpl implements Operation
buf
[
j
]
=
(
byte
)((
ORBUtility
.
hexOf
(
str
.
charAt
(
i
))
<<
UN_SHIFT
)
&
0xF0
);
buf
[
j
]
|=
(
byte
)(
ORBUtility
.
hexOf
(
str
.
charAt
(
i
+
1
))
&
0x0F
);
}
EncapsInputStream
s
=
new
EncapsInputStream
(
orb
,
buf
,
buf
.
length
,
orb
.
getORBData
().
getGIOPVersion
());
EncapsInputStream
s
=
EncapsInputStreamFactory
.
new
EncapsInputStream
(
orb
,
buf
,
buf
.
length
,
orb
.
getORBData
().
getGIOPVersion
());
s
.
consumeEndian
();
return
s
.
read_Object
()
;
}
...
...
src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContexts.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 1999, 20
04
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 20
13
, 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
...
...
@@ -58,6 +58,9 @@ import com.sun.corba.se.impl.orbutil.ORBUtility ;
import
com.sun.corba.se.impl.util.Utility
;
import
com.sun.corba.se.impl.logging.ORBUtilSystemException
;
import
sun.corba.EncapsInputStreamFactory
;
public
class
ServiceContexts
{
private
static
boolean
isDebugging
(
OutputStream
os
)
{
...
...
@@ -198,11 +201,11 @@ public class ServiceContexts {
// Note: As of Jan 2001, no standard OMG or Sun service contexts
// ship wchar data or are defined as using anything but GIOP 1.0 CDR.
EncapsInputStream
eis
=
new
EncapsInputStream
(
orb
,
data
,
data
.
length
,
giopVersion
,
codeBase
);
=
EncapsInputStreamFactory
.
new
EncapsInputStream
(
orb
,
data
,
data
.
length
,
giopVersion
,
codeBase
);
eis
.
consumeEndian
();
// Now the input stream passed to a ServiceContext
...
...
src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java
浏览文件 @
539c8ceb
/*
* Copyright (c) 1998, 20
00
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 20
13
, 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
...
...
@@ -31,6 +31,10 @@
package
org.omg.CORBA_2_3.portable
;
import
java.io.SerializablePermission
;
import
java.security.AccessController
;
import
java.security.PrivilegedAction
;
/**
* InputStream provides for the reading of all of the mapped IDL types
* from the stream. It extends org.omg.CORBA.portable.InputStream. This
...
...
@@ -43,6 +47,43 @@ package org.omg.CORBA_2_3.portable;
public
abstract
class
InputStream
extends
org
.
omg
.
CORBA
.
portable
.
InputStream
{
private
static
final
String
ALLOW_SUBCLASS_PROP
=
"jdk.corba.allowInputStreamSubclass"
;
private
static
final
boolean
allowSubclass
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
Boolean
>()
{
@Override
public
Boolean
run
()
{
String
prop
=
System
.
getProperty
(
ALLOW_SUBCLASS_PROP
);
return
prop
==
null
?
false
:
(
prop
.
equalsIgnoreCase
(
"false"
)
?
false
:
true
);
}
});
private
static
Void
checkPermission
()
{
SecurityManager
sm
=
System
.
getSecurityManager
();
if
(
sm
!=
null
)
{
if
(!
allowSubclass
)
sm
.
checkPermission
(
new
SerializablePermission
(
"enableSubclassImplementation"
));
}
return
null
;
}
private
InputStream
(
Void
ignore
)
{
}
/**
* Create a new instance of this class.
*
* throw SecurityException if SecurityManager is installed and
* enableSubclassImplementation SerializablePermission
* is not granted or jdk.corba.allowOutputStreamSubclass system
* property is either not set or is set to 'false'
*/
public
InputStream
()
{
this
(
checkPermission
());
}
/**
* Unmarshalls a value type from the input stream.
* @return the value type unmarshalled from the input stream
...
...
src/share/classes/sun/corba/EncapsInputStreamFactory.java
0 → 100644
浏览文件 @
539c8ceb
/*
* 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. 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.
*/
package
sun.corba
;
import
java.nio.ByteBuffer
;
import
java.security.AccessController
;
import
java.security.PrivilegedAction
;
import
com.sun.corba.se.impl.encoding.EncapsInputStream
;
import
com.sun.corba.se.impl.encoding.TypeCodeInputStream
;
import
com.sun.corba.se.impl.protocol.giopmsgheaders.Message
;
import
com.sun.corba.se.pept.protocol.MessageMediator
;
import
com.sun.corba.se.spi.ior.iiop.GIOPVersion
;
import
com.sun.corba.se.spi.orb.ORB
;
import
com.sun.org.omg.SendingContext.CodeBase
;
public
class
EncapsInputStreamFactory
{
public
static
EncapsInputStream
newEncapsInputStream
(
final
org
.
omg
.
CORBA
.
ORB
orb
,
final
byte
[]
buf
,
final
int
size
,
final
boolean
littleEndian
,
final
GIOPVersion
version
)
{
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
EncapsInputStream
>()
{
@Override
public
EncapsInputStream
run
()
{
return
new
EncapsInputStream
(
orb
,
buf
,
size
,
littleEndian
,
version
);
}
});
}
public
static
EncapsInputStream
newEncapsInputStream
(
final
org
.
omg
.
CORBA
.
ORB
orb
,
final
ByteBuffer
byteBuffer
,
final
int
size
,
final
boolean
littleEndian
,
final
GIOPVersion
version
)
{
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
EncapsInputStream
>()
{
@Override
public
EncapsInputStream
run
()
{
return
new
EncapsInputStream
(
orb
,
byteBuffer
,
size
,
littleEndian
,
version
);
}
});
}
public
static
EncapsInputStream
newEncapsInputStream
(
final
org
.
omg
.
CORBA
.
ORB
orb
,
final
byte
[]
data
,
final
int
size
)
{
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
EncapsInputStream
>()
{
@Override
public
EncapsInputStream
run
()
{
return
new
EncapsInputStream
(
orb
,
data
,
size
);
}
});
}
public
static
EncapsInputStream
newEncapsInputStream
(
final
EncapsInputStream
eis
)
{
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
EncapsInputStream
>()
{
@Override
public
EncapsInputStream
run
()
{
return
new
EncapsInputStream
(
eis
);
}
});
}
public
static
EncapsInputStream
newEncapsInputStream
(
final
org
.
omg
.
CORBA
.
ORB
orb
,
final
byte
[]
data
,
final
int
size
,
final
GIOPVersion
version
)
{
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
EncapsInputStream
>()
{
@Override
public
EncapsInputStream
run
()
{
return
new
EncapsInputStream
(
orb
,
data
,
size
,
version
);
}
});
}
public
static
EncapsInputStream
newEncapsInputStream
(
final
org
.
omg
.
CORBA
.
ORB
orb
,
final
byte
[]
data
,
final
int
size
,
final
GIOPVersion
version
,
final
CodeBase
codeBase
)
{
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
EncapsInputStream
>()
{
@Override
public
EncapsInputStream
run
()
{
return
new
EncapsInputStream
(
orb
,
data
,
size
,
version
,
codeBase
);
}
});
}
public
static
TypeCodeInputStream
newTypeCodeInputStream
(
final
org
.
omg
.
CORBA
.
ORB
orb
,
final
byte
[]
buf
,
final
int
size
,
final
boolean
littleEndian
,
final
GIOPVersion
version
)
{
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
TypeCodeInputStream
>()
{
@Override
public
TypeCodeInputStream
run
()
{
return
new
TypeCodeInputStream
(
orb
,
buf
,
size
,
littleEndian
,
version
);
}
});
}
public
static
TypeCodeInputStream
newTypeCodeInputStream
(
final
org
.
omg
.
CORBA
.
ORB
orb
,
final
ByteBuffer
byteBuffer
,
final
int
size
,
final
boolean
littleEndian
,
final
GIOPVersion
version
)
{
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
TypeCodeInputStream
>()
{
@Override
public
TypeCodeInputStream
run
()
{
return
new
TypeCodeInputStream
(
orb
,
byteBuffer
,
size
,
littleEndian
,
version
);
}
});
}
public
static
TypeCodeInputStream
newTypeCodeInputStream
(
final
org
.
omg
.
CORBA
.
ORB
orb
,
final
byte
[]
data
,
final
int
size
)
{
return
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
TypeCodeInputStream
>()
{
@Override
public
TypeCodeInputStream
run
()
{
return
new
TypeCodeInputStream
(
orb
,
data
,
size
);
}
});
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录