提交 75fda9a7 编写于 作者: A asaha

Merge

......@@ -874,6 +874,7 @@ d534205fffcf950a11ed37103f5a0c23fe14ee49 jdk8u171-b03
3bca003f024c7bb6774499ff2ede57d300c18c79 jdk8u171-b06
b90a8fc589afa4ac20a4d1e4f819058a5730af9f jdk8u171-b07
f7f59d87e97dd1e3a7ff4ebc5ed843b2ed5f2361 jdk8u171-b08
b3563151fe42c6b997279fc24f8329c4c03add96 jdk8u171-b09
72dbc8d63308f5b04b9fd3e06d139d673f992212 jdk8u172-b00
fbb7c1e76e59aabb85a70c81301f47b980f83225 jdk8u172-b01
56874ff37e89559692d1314d48cbab574544b677 jdk8u172-b02
......
......@@ -31,9 +31,9 @@
package com.sun.corba.se.impl.ior;
import java.io.ObjectInputStream ;
import java.io.ObjectOutputStream ;
import java.io.IOException ;
import java.io.IOException;
import java.io.ObjectOutputStream;
import sun.corba.SharedSecrets;
import org.omg.CORBA.ORB ;
......@@ -46,7 +46,6 @@ import org.omg.CORBA.portable.OutputStream ;
// other vendor's ORBs.
import com.sun.corba.se.spi.presentation.rmi.StubAdapter ;
import com.sun.corba.se.impl.orbutil.HexOutputStream ;
import sun.corba.SharedSecrets;
/**
* This class implements a very simply IOR representation
......
......@@ -29,8 +29,7 @@ import com.sun.corba.se.impl.io.ValueUtility;
import sun.misc.JavaOISAccess;
import sun.misc.Unsafe;
import java.io.ObjectInputStream;
import java.security.AccessController;
import java.lang.reflect.Method;
/** A repository of "shared secrets", which are a mechanism for
calling implementation-private methods in another package without
......@@ -45,8 +44,32 @@ import java.security.AccessController;
public class SharedSecrets {
private static final Unsafe unsafe = Unsafe.getUnsafe();
private static JavaCorbaAccess javaCorbaAccess;
private static final Method getJavaOISAccessMethod;
private static JavaOISAccess javaOISAccess;
// Initialize getJavaOISAccessMethod using reflection.
static {
try {
Class sharedSecret = Class.forName("sun.misc.SharedSecrets");
getJavaOISAccessMethod =
sharedSecret.getMethod("getJavaOISAccess");
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public static JavaOISAccess getJavaOISAccess() {
if (javaOISAccess == null) {
try {
javaOISAccess =
(JavaOISAccess) getJavaOISAccessMethod.invoke(null);
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
return javaOISAccess;
}
public static JavaCorbaAccess getJavaCorbaAccess() {
if (javaCorbaAccess == null) {
// Ensure ValueUtility is initialized; we know that that class
......@@ -59,16 +82,4 @@ public class SharedSecrets {
public static void setJavaCorbaAccess(JavaCorbaAccess access) {
javaCorbaAccess = access;
}
public static void setJavaOISAccess(JavaOISAccess access) {
javaOISAccess = access;
}
public static JavaOISAccess getJavaOISAccess() {
if (javaOISAccess == null)
unsafe.ensureClassInitialized(ObjectInputStream.class);
return javaOISAccess;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册