Tue, 06 Mar 2018 20:32:27 +0000
Merge
.hgtags | file | annotate | diff | comparison | revisions |
1.1 --- a/.hgtags Tue Mar 06 20:30:30 2018 +0000 1.2 +++ b/.hgtags Tue Mar 06 20:32:27 2018 +0000 1.3 @@ -874,6 +874,7 @@ 1.4 3bca003f024c7bb6774499ff2ede57d300c18c79 jdk8u171-b06 1.5 b90a8fc589afa4ac20a4d1e4f819058a5730af9f jdk8u171-b07 1.6 f7f59d87e97dd1e3a7ff4ebc5ed843b2ed5f2361 jdk8u171-b08 1.7 +b3563151fe42c6b997279fc24f8329c4c03add96 jdk8u171-b09 1.8 72dbc8d63308f5b04b9fd3e06d139d673f992212 jdk8u172-b00 1.9 fbb7c1e76e59aabb85a70c81301f47b980f83225 jdk8u172-b01 1.10 56874ff37e89559692d1314d48cbab574544b677 jdk8u172-b02
2.1 --- a/src/share/classes/com/sun/corba/se/impl/ior/StubIORImpl.java Tue Mar 06 20:30:30 2018 +0000 2.2 +++ b/src/share/classes/com/sun/corba/se/impl/ior/StubIORImpl.java Tue Mar 06 20:32:27 2018 +0000 2.3 @@ -31,9 +31,9 @@ 2.4 2.5 package com.sun.corba.se.impl.ior; 2.6 2.7 -import java.io.ObjectInputStream ; 2.8 -import java.io.ObjectOutputStream ; 2.9 -import java.io.IOException ; 2.10 +import java.io.IOException; 2.11 +import java.io.ObjectOutputStream; 2.12 +import sun.corba.SharedSecrets; 2.13 2.14 import org.omg.CORBA.ORB ; 2.15 2.16 @@ -46,7 +46,6 @@ 2.17 // other vendor's ORBs. 2.18 import com.sun.corba.se.spi.presentation.rmi.StubAdapter ; 2.19 import com.sun.corba.se.impl.orbutil.HexOutputStream ; 2.20 -import sun.corba.SharedSecrets; 2.21 2.22 /** 2.23 * This class implements a very simply IOR representation
3.1 --- a/src/share/classes/sun/corba/SharedSecrets.java Tue Mar 06 20:30:30 2018 +0000 3.2 +++ b/src/share/classes/sun/corba/SharedSecrets.java Tue Mar 06 20:32:27 2018 +0000 3.3 @@ -29,8 +29,7 @@ 3.4 import sun.misc.JavaOISAccess; 3.5 import sun.misc.Unsafe; 3.6 3.7 -import java.io.ObjectInputStream; 3.8 -import java.security.AccessController; 3.9 +import java.lang.reflect.Method; 3.10 3.11 /** A repository of "shared secrets", which are a mechanism for 3.12 calling implementation-private methods in another package without 3.13 @@ -45,8 +44,32 @@ 3.14 public class SharedSecrets { 3.15 private static final Unsafe unsafe = Unsafe.getUnsafe(); 3.16 private static JavaCorbaAccess javaCorbaAccess; 3.17 + private static final Method getJavaOISAccessMethod; 3.18 private static JavaOISAccess javaOISAccess; 3.19 3.20 + // Initialize getJavaOISAccessMethod using reflection. 3.21 + static { 3.22 + try { 3.23 + Class sharedSecret = Class.forName("sun.misc.SharedSecrets"); 3.24 + getJavaOISAccessMethod = 3.25 + sharedSecret.getMethod("getJavaOISAccess"); 3.26 + } catch (Exception e) { 3.27 + throw new ExceptionInInitializerError(e); 3.28 + } 3.29 + } 3.30 + 3.31 + public static JavaOISAccess getJavaOISAccess() { 3.32 + if (javaOISAccess == null) { 3.33 + try { 3.34 + javaOISAccess = 3.35 + (JavaOISAccess) getJavaOISAccessMethod.invoke(null); 3.36 + } catch (Exception e) { 3.37 + throw new ExceptionInInitializerError(e); 3.38 + } 3.39 + } 3.40 + return javaOISAccess; 3.41 + } 3.42 + 3.43 public static JavaCorbaAccess getJavaCorbaAccess() { 3.44 if (javaCorbaAccess == null) { 3.45 // Ensure ValueUtility is initialized; we know that that class 3.46 @@ -59,16 +82,4 @@ 3.47 public static void setJavaCorbaAccess(JavaCorbaAccess access) { 3.48 javaCorbaAccess = access; 3.49 } 3.50 - 3.51 - public static void setJavaOISAccess(JavaOISAccess access) { 3.52 - javaOISAccess = access; 3.53 - } 3.54 - 3.55 - public static JavaOISAccess getJavaOISAccess() { 3.56 - if (javaOISAccess == null) 3.57 - unsafe.ensureClassInitialized(ObjectInputStream.class); 3.58 - 3.59 - return javaOISAccess; 3.60 - } 3.61 - 3.62 }