< prev index next >

modules/web/src/main/java/com/sun/webkit/Disposer.java

Print this page
rev 9728 : 8139317: [Mac] SecurityException when constructing WebView from JFXPanel application
Reviewed-by:

*** 30,39 **** --- 30,40 ---- package com.sun.webkit; import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; + import java.security.PrivilegedAction; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; import java.util.Set; import java.util.concurrent.LinkedBlockingQueue;
*** 56,69 **** private static final Disposer disposerInstance = new Disposer(); private static final Set<WeakDisposerRecord> records = new HashSet<WeakDisposerRecord>(); static { ! Thread t = new Thread(disposerInstance, "Disposer"); t.setDaemon(true); t.setPriority(Thread.MAX_PRIORITY); t.start(); } /** * Registers the object and the native data for later disposal. * @param target Object to be registered --- 57,83 ---- private static final Disposer disposerInstance = new Disposer(); private static final Set<WeakDisposerRecord> records = new HashSet<WeakDisposerRecord>(); static { ! java.security.AccessController.doPrivileged((PrivilegedAction<Void>) () -> { ! /* ! * The thread must be a member of a thread group ! * which will not get GCed before VM exit. ! * Make its parent the top-level thread group. ! */ ! ThreadGroup tg = Thread.currentThread().getThreadGroup(); ! for (ThreadGroup tgn = tg; ! tgn != null; ! tg = tgn, tgn = tg.getParent()); ! ! Thread t = new Thread(tg, disposerInstance, "Disposer"); t.setDaemon(true); t.setPriority(Thread.MAX_PRIORITY); t.start(); + return null; + }); } /** * Registers the object and the native data for later disposal. * @param target Object to be registered
< prev index next >