sun.misc.SharedSecrets Java Examples
The following examples show how to use
sun.misc.SharedSecrets.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: IdentityHashMap.java From JDKSourceCode1.8 with MIT License | 6 votes |
/** * Reconstitutes the <tt>IdentityHashMap</tt> instance from a stream (i.e., * deserializes it). */ private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { // Read in any hidden stuff s.defaultReadObject(); // Read in size (number of Mappings) int size = s.readInt(); if (size < 0) throw new java.io.StreamCorruptedException ("Illegal mappings count: " + size); int cap = capacity(size); SharedSecrets.getJavaOISAccess().checkArray(s, Object[].class, cap); init(cap); // Read the keys and values, and put the mappings in the table for (int i=0; i<size; i++) { @SuppressWarnings("unchecked") K key = (K) s.readObject(); @SuppressWarnings("unchecked") V value = (V) s.readObject(); putForCreate(key, value); } }
Example #2
Source File: Finalizer.java From jdk-1.7-annotated with Apache License 2.0 | 6 votes |
static void runFinalization() { if (!VM.isBooted()) { return; } forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { if (running) return; final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f = (Finalizer)queue.poll(); if (f == null) break; f.runFinalizer(jla); } } }); }
Example #3
Source File: Finalizer.java From dragonwell8_jdk with GNU General Public License v2.0 | 6 votes |
private static void forkSecondaryFinalizer(final Runnable proc) { AccessController.doPrivileged( new PrivilegedAction<Void>() { public Void run() { ThreadGroup tg = Thread.currentThread().getThreadGroup(); for (ThreadGroup tgn = tg; tgn != null; tg = tgn, tgn = tg.getParent()); Thread sft = new Thread(tg, proc, "Secondary finalizer"); if (TenantGlobals.isDataIsolationEnabled() && TenantContainer.current() != null) { SharedSecrets.getTenantAccess() .registerServiceThread(TenantContainer.current(), sft); } sft.start(); try { sft.join(); } catch (InterruptedException x) { Thread.currentThread().interrupt(); } return null; }}); }
Example #4
Source File: CopyOnWriteArrayList.java From TencentKona-8 with GNU General Public License v2.0 | 6 votes |
/** * Reconstitutes this list from a stream (that is, deserializes it). * @param s the stream * @throws ClassNotFoundException if the class of a serialized object * could not be found * @throws java.io.IOException if an I/O error occurs */ private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); // bind to new lock resetLock(); // Read in array length and allocate array int len = s.readInt(); SharedSecrets.getJavaOISAccess().checkArray(s, Object[].class, len); Object[] elements = new Object[len]; // Read in all elements in the proper order. for (int i = 0; i < len; i++) elements[i] = s.readObject(); setArray(elements); }
Example #5
Source File: PriorityQueue.java From openjdk-jdk8u with GNU General Public License v2.0 | 6 votes |
/** * Reconstitutes the {@code PriorityQueue} instance from a stream * (that is, deserializes it). * * @param s the stream */ private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { // Read in size, and any hidden stuff s.defaultReadObject(); // Read in (and discard) array length s.readInt(); SharedSecrets.getJavaOISAccess().checkArray(s, Object[].class, size); queue = new Object[size]; // Read in all elements. for (int i = 0; i < size; i++) queue[i] = s.readObject(); // Elements are guaranteed to be in "proper order", but the // spec has never explained what that might be. heapify(); }
Example #6
Source File: ArrayList.java From TencentKona-8 with GNU General Public License v2.0 | 6 votes |
/** * Reconstitute the <tt>ArrayList</tt> instance from a stream (that is, * deserialize it). */ private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { elementData = EMPTY_ELEMENTDATA; // Read in size, and any hidden stuff s.defaultReadObject(); // Read in capacity s.readInt(); // ignored if (size > 0) { // be like clone(), allocate array based upon size not capacity int capacity = calculateCapacity(elementData, size); SharedSecrets.getJavaOISAccess().checkArray(s, Object[].class, capacity); ensureCapacityInternal(size); Object[] a = elementData; // Read in all elements in the proper order. for (int i=0; i<size; i++) { a[i] = s.readObject(); } } }
Example #7
Source File: Finalizer.java From jdk8u_jdk with GNU General Public License v2.0 | 6 votes |
static void runFinalization() { if (!VM.isBooted()) { return; } forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { // in case of recursive call to run() if (running) return; final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f = (Finalizer)queue.poll(); if (f == null) break; f.runFinalizer(jla); } } }); }
Example #8
Source File: Finalizer.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 6 votes |
static void runFinalization() { if (!VM.isBooted()) { return; } forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { if (running) return; final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f = (Finalizer)queue.poll(); if (f == null) break; f.runFinalizer(jla); } } }); }
Example #9
Source File: PreserveCombinerTest.java From openjdk-jdk8u with GNU General Public License v2.0 | 6 votes |
public static void main(String[]args) throws Exception { final DomainCombiner dc = new DomainCombiner() { @Override public ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains) { return currentDomains; // basically a no-op } }; // Get an instance of the saved ACC AccessControlContext saved = AccessController.getContext(); // Simulate the stack ACC with a DomainCombiner attached AccessControlContext stack = new AccessControlContext(AccessController.getContext(), dc); // Now try to run JavaSecurityAccess.doIntersectionPrivilege() and assert // whether the DomainCombiner from the stack ACC is preserved boolean ret = SharedSecrets.getJavaSecurityAccess().doIntersectionPrivilege(new PrivilegedAction<Boolean>() { @Override public Boolean run() { return dc == AccessController.getContext().getDomainCombiner(); } }, stack, saved); if (!ret) { System.exit(1); } }
Example #10
Source File: Finalizer.java From jdk8u-jdk with GNU General Public License v2.0 | 6 votes |
static void runAllFinalizers() { if (!VM.isBooted()) { return; } forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { if (running) return; final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f; synchronized (lock) { f = unfinalized; if (f == null) break; unfinalized = f.next; } f.runFinalizer(jla); }}}); }
Example #11
Source File: ArrayList.java From JDKSourceCode1.8 with MIT License | 6 votes |
/** * 从流中重构ArrayList实例(即反序列化)。 */ private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { elementData = EMPTY_ELEMENTDATA; // 执行默认的序列化/反序列化过程 s.defaultReadObject(); // 读入数组长度 s.readInt(); // ignored if (size > 0) { // 像clone()方法 ,但根据大小而不是容量分配数组 int capacity = calculateCapacity(elementData, size); SharedSecrets.getJavaOISAccess().checkArray(s, Object[].class, capacity); ensureCapacityInternal(size); Object[] a = elementData; //读入所有元素 for (int i = 0; i < size; i++) { a[i] = s.readObject(); } } }
Example #12
Source File: PriorityQueue.java From dragonwell8_jdk with GNU General Public License v2.0 | 6 votes |
/** * Reconstitutes the {@code PriorityQueue} instance from a stream * (that is, deserializes it). * * @param s the stream */ private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { // Read in size, and any hidden stuff s.defaultReadObject(); // Read in (and discard) array length s.readInt(); SharedSecrets.getJavaOISAccess().checkArray(s, Object[].class, size); queue = new Object[size]; // Read in all elements. for (int i = 0; i < size; i++) queue[i] = s.readObject(); // Elements are guaranteed to be in "proper order", but the // spec has never explained what that might be. heapify(); }
Example #13
Source File: Finalizer.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 6 votes |
static void runFinalization() { if (!VM.isBooted()) { return; } forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { // in case of recursive call to run() if (running) return; final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f = (Finalizer)queue.poll(); if (f == null) break; f.runFinalizer(jla); } } }); }
Example #14
Source File: PreserveCombinerTest.java From TencentKona-8 with GNU General Public License v2.0 | 6 votes |
public static void main(String[]args) throws Exception { final DomainCombiner dc = new DomainCombiner() { @Override public ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains) { return currentDomains; // basically a no-op } }; // Get an instance of the saved ACC AccessControlContext saved = AccessController.getContext(); // Simulate the stack ACC with a DomainCombiner attached AccessControlContext stack = new AccessControlContext(AccessController.getContext(), dc); // Now try to run JavaSecurityAccess.doIntersectionPrivilege() and assert // whether the DomainCombiner from the stack ACC is preserved boolean ret = SharedSecrets.getJavaSecurityAccess().doIntersectionPrivilege(new PrivilegedAction<Boolean>() { @Override public Boolean run() { return dc == AccessController.getContext().getDomainCombiner(); } }, stack, saved); if (!ret) { System.exit(1); } }
Example #15
Source File: Finalizer.java From jdk8u60 with GNU General Public License v2.0 | 6 votes |
static void runAllFinalizers() { if (!VM.isBooted()) { return; } forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { if (running) return; final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f; synchronized (lock) { f = unfinalized; if (f == null) break; unfinalized = f.next; } f.runFinalizer(jla); }}}); }
Example #16
Source File: CheckArrayTest.java From openjdk-jdk8u with GNU General Public License v2.0 | 6 votes |
/** * Test SharedSecrets checkArray with an ObjectInputStream subclassed to * handle all input stream functions. */ @Test(dataProvider = "Patterns") public void subclassedOIS(String pattern, int arraySize, Object[] array) throws IOException { byte[] bytes = SerialFilterTest.writeObjects(array); try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes); ObjectInputStream ois = new MyInputStream(bais)) { // Check the arraysize against the filter ObjectInputFilter filter = ObjectInputFilter.Config.createFilter(pattern); ObjectInputFilter.Config.setObjectInputFilter(ois, filter); SharedSecrets.getJavaOISAccess() .checkArray(ois, array.getClass(), arraySize); Assert.assertTrue(array.length >= arraySize, "Should have thrown InvalidClassException due to array size"); } catch (InvalidClassException ice) { Assert.assertFalse(array.length > arraySize, "Should NOT have thrown InvalidClassException due to array size"); } }
Example #17
Source File: SSLSocketImpl.java From jdk8u60 with GNU General Public License v2.0 | 6 votes |
private static String getOriginalHostname(InetAddress inetAddress) { /* * Get the original hostname via sun.misc.SharedSecrets. */ JavaNetAccess jna = SharedSecrets.getJavaNetAccess(); String originalHostname = jna.getOriginalHostName(inetAddress); /* * If no application specified hostname, use the IP address. */ if (originalHostname == null || originalHostname.length() == 0) { originalHostname = inetAddress.getHostAddress(); } return originalHostname; }
Example #18
Source File: Finalizer.java From TencentKona-8 with GNU General Public License v2.0 | 6 votes |
static void runFinalization() { if (!VM.isBooted()) { return; } forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { // in case of recursive call to run() if (running) return; final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f = (Finalizer)queue.poll(); if (f == null) break; f.runFinalizer(jla); } } }); }
Example #19
Source File: Finalizer.java From jdk8u_jdk with GNU General Public License v2.0 | 6 votes |
static void runAllFinalizers() { if (!VM.isBooted()) { return; } forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { // in case of recursive call to run() if (running) return; final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f; synchronized (lock) { f = unfinalized; if (f == null) break; unfinalized = f.next; } f.runFinalizer(jla); }}}); }
Example #20
Source File: Finalizer.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 6 votes |
static void runAllFinalizers() { if (!VM.isBooted()) { return; } forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { if (running) return; final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f; synchronized (lock) { f = unfinalized; if (f == null) break; unfinalized = f.next; } f.runFinalizer(jla); }}}); }
Example #21
Source File: Finalizer.java From openjdk-8 with GNU General Public License v2.0 | 6 votes |
static void runFinalization() { if (!VM.isBooted()) { return; } forkSecondaryFinalizer(new Runnable() { private volatile boolean running; public void run() { if (running) return; final JavaLangAccess jla = SharedSecrets.getJavaLangAccess(); running = true; for (;;) { Finalizer f = (Finalizer)queue.poll(); if (f == null) break; f.runFinalizer(jla); } } }); }
Example #22
Source File: CopyOnWriteArrayList.java From dragonwell8_jdk with GNU General Public License v2.0 | 6 votes |
/** * Reconstitutes this list from a stream (that is, deserializes it). * @param s the stream * @throws ClassNotFoundException if the class of a serialized object * could not be found * @throws java.io.IOException if an I/O error occurs */ private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); // bind to new lock resetLock(); // Read in array length and allocate array int len = s.readInt(); SharedSecrets.getJavaOISAccess().checkArray(s, Object[].class, len); Object[] elements = new Object[len]; // Read in all elements in the proper order. for (int i = 0; i < len; i++) elements[i] = s.readObject(); setArray(elements); }
Example #23
Source File: PolicyFile.java From openjdk-jdk8u with GNU General Public License v2.0 | 6 votes |
PolicyInfo(int numCaches) { policyEntries = new ArrayList<>(); identityPolicyEntries = Collections.synchronizedList(new ArrayList<PolicyEntry>(2)); aliasMapping = Collections.synchronizedMap(new HashMap<>(11)); pdMapping = new ProtectionDomainCache[numCaches]; JavaSecurityProtectionDomainAccess jspda = SharedSecrets.getJavaSecurityProtectionDomainAccess(); for (int i = 0; i < numCaches; i++) { pdMapping[i] = jspda.getProtectionDomainCache(); } if (numCaches > 1) { random = new java.util.Random(); } }
Example #24
Source File: IdentityHashMap.java From dragonwell8_jdk with GNU General Public License v2.0 | 6 votes |
/** * Reconstitutes the <tt>IdentityHashMap</tt> instance from a stream (i.e., * deserializes it). */ private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { // Read in any hidden stuff s.defaultReadObject(); // Read in size (number of Mappings) int size = s.readInt(); if (size < 0) throw new java.io.StreamCorruptedException ("Illegal mappings count: " + size); int cap = capacity(size); SharedSecrets.getJavaOISAccess().checkArray(s, Object[].class, cap); init(cap); // Read the keys and values, and put the mappings in the table for (int i=0; i<size; i++) { @SuppressWarnings("unchecked") K key = (K) s.readObject(); @SuppressWarnings("unchecked") V value = (V) s.readObject(); putForCreate(key, value); } }
Example #25
Source File: ArrayDeck.java From hmftools with GNU General Public License v3.0 | 6 votes |
/** * Reconstitutes this deque from a stream (that is, deserializes it). */ private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); // Read in size and allocate array int size = s.readInt(); int capacity = calculateSize(size); SharedSecrets.getJavaOISAccess().checkArray(s, Object[].class, capacity); allocateElements(size); head = 0; tail = size; // Read in all elements in the proper order. for (int i = 0; i < size; i++) { elements[i] = s.readObject(); } }
Example #26
Source File: UnicastRef.java From TencentKona-8 with GNU General Public License v2.0 | 5 votes |
/** * Unmarshal value from an ObjectInput source using RMI's serialization * format for parameters or return values. */ protected static Object unmarshalValue(Class<?> type, ObjectInput in) throws IOException, ClassNotFoundException { if (type.isPrimitive()) { if (type == int.class) { return Integer.valueOf(in.readInt()); } else if (type == boolean.class) { return Boolean.valueOf(in.readBoolean()); } else if (type == byte.class) { return Byte.valueOf(in.readByte()); } else if (type == char.class) { return Character.valueOf(in.readChar()); } else if (type == short.class) { return Short.valueOf(in.readShort()); } else if (type == long.class) { return Long.valueOf(in.readLong()); } else if (type == float.class) { return Float.valueOf(in.readFloat()); } else if (type == double.class) { return Double.valueOf(in.readDouble()); } else { throw new Error("Unrecognized primitive type: " + type); } } else if (type == String.class && in instanceof ObjectInputStream) { return SharedSecrets.getJavaObjectInputStreamReadString().readString((ObjectInputStream)in); } else { return in.readObject(); } }
Example #27
Source File: TabularDataSupport.java From dragonwell8_jdk with GNU General Public License v2.0 | 5 votes |
/** * Deserializes a {@link TabularDataSupport} from an {@link ObjectInputStream}. */ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); List<String> tmpNames = tabularType.getIndexNames(); int size = tmpNames.size(); SharedSecrets.getJavaOISAccess().checkArray(in, String[].class, size); indexNamesArray = tmpNames.toArray(new String[size]); }
Example #28
Source File: TestAppletLoggerContext.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 5 votes |
public static void init() { SharedSecrets.setJavaAWTAccess(javaAwtAccess); if (System.getProperty("test.security", "on").equals("on")) { Policy p = new SimplePolicy(new LoggingPermission("control", null), new RuntimePermission("setContextClassLoader"), new RuntimePermission("shutdownHooks")); Policy.setPolicy(p); System.setSecurityManager(new SecurityManager()); } }
Example #29
Source File: RootLevelInConfigFile.java From dragonwell8_jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws IOException { System.setProperty(CONFIG_FILE_KEY, new File(System.getProperty("test.src", "."), "rootlogger.properties").getAbsolutePath()); System.out.println(CONFIG_FILE_KEY + "=" + System.getProperty(CONFIG_FILE_KEY)); if (! new File(System.getProperty(CONFIG_FILE_KEY)).canRead()) { throw new RuntimeException("can't read config file: " + System.getProperty(CONFIG_FILE_KEY)); } final String configFile = System.getProperty(CONFIG_FILE_KEY); test("no security"); LogManager.getLogManager().readConfiguration(); Policy.setPolicy(new SimplePolicy(configFile)); System.setSecurityManager(new SecurityManager()); test("security"); LogManager.getLogManager().readConfiguration(); final JavaAWTAccessStub access = new JavaAWTAccessStub(); SharedSecrets.setJavaAWTAccess(access); test("security and no context"); for (Context ctx : Context.values()) { LogManager.getLogManager().readConfiguration(); access.setContext(ctx); test("security and context " + ctx); } }
Example #30
Source File: TestInheritedContainer.java From dragonwell8_jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { ResourceContainer rc = MyResourceFactory.INSTANCE.createContainer(Collections.emptyList()); JavaLangAccess JLA = SharedSecrets.getJavaLangAccess(); rc.run(() -> { try { assertEQ(ResourceContainer.root(), CompletableFuture.supplyAsync(() -> JLA.getResourceContainer(Thread.currentThread())).get()); assertEQ(rc, CompletableFuture.supplyAsync(() -> JLA.getInheritedResourceContainer(Thread.currentThread())).get()); } catch (Exception e) { throw new AssertionError(e); } }); }