Java Code Examples for java.lang.ref.ReferenceQueue#remove()
The following examples show how to use
java.lang.ref.ReferenceQueue#remove() .
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: SoftCache.java From cpsolver with GNU Lesser General Public License v3.0 | 6 votes |
@Override public void run() { try { while (true) { ReferenceQueue<V> q = getQueue(); if (q == null) break; // soft cache deallocated -- stop the thread if (q.remove(10000) == null) continue; // was there something deallocated? while (q.poll() != null) { } // pull all the deallocated references from the queue cleanDeallocated(); // clean the cache } sLogger.debug("cache terminated"); } catch (Exception e) { sLogger.error("cleanup thread failed, reason:" + e.getMessage(), e); } }
Example 2
Source File: CleanerTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 6 votes |
/** * Test that releasing the reference to the Cleaner service allows it to be * be freed. */ @Test void testCleanerTermination() { ReferenceQueue<Object> queue = new ReferenceQueue<>(); Cleaner service = Cleaner.create(); PhantomReference<Object> ref = new PhantomReference<>(service, queue); System.gc(); // Clear the Reference to the cleaning service and force a gc. service = null; System.gc(); try { Reference<?> r = queue.remove(1000L); Assert.assertNotNull(r, "queue.remove timeout,"); Assert.assertEquals(r, ref, "Wrong Reference dequeued"); } catch (InterruptedException ie) { System.out.printf("queue.remove Interrupted%n"); } }
Example 3
Source File: Caches.java From FastBootWeixin with Apache License 2.0 | 6 votes |
/** Collects items from GC and removes them from cache */ protected void runRefQueue(){ try{ final ReferenceQueue<?> queue = this.queue; if(queue == null)return; final LongConcurrentHashMap<CacheItem> items = this.items; while(true){ CacheItem item = (CacheItem) queue.remove(); items.remove(item.getRecid(), item); if(Thread.interrupted()) return; } }catch(InterruptedException e){ //this is expected, so just silently exit thread } }
Example 4
Source File: SubclassGC.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 5
Source File: SubclassGC.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 6
Source File: SubclassGC.java From jdk8u_jdk with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 7
Source File: SubclassGC.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 8
Source File: SubclassGC.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 9
Source File: SubclassGC.java From hottub with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 10
Source File: CacheWeakSoftRef.java From scava with Eclipse Public License 2.0 | 5 votes |
/** Collects items from GC and removes them from cache */ protected void runRefQueue(){ try{ final ReferenceQueue<?> queue = this.queue; final LongConcurrentHashMap<CacheItem> items = this.items; while(true){ CacheItem item = (CacheItem) queue.remove(); items.remove(item.getRecid(), item); if(Thread.interrupted()) return; } }catch(InterruptedException e){ //this is expected, so just silently exit thread } }
Example 11
Source File: CompletionHandlerRelease.java From dragonwell8_jdk with GNU General Public License v2.0 | 5 votes |
private void waitForRefToClear(Reference ref, ReferenceQueue queue) throws InterruptedException { Reference r; while ((r = queue.remove(20)) == null) { System.gc(); } assertEquals(r, ref); assertNull(r.get()); }
Example 12
Source File: SubclassGC.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); URL testClassesURL = new File(System.getProperty("test.classes")).toURI().toURL(); ClassLoader loader = new URLClassLoader(new URL[] { testClassesURL } , systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 13
Source File: GCRetention.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
void removeAll(ReferenceQueue<?> q, int n) throws InterruptedException { for (int j = n; j--> 0; ) { if (q.poll() == null) { for (;;) { System.gc(); if (q.remove(1000) != null) break; System.out.printf( "%d/%d unqueued references remaining%n", j, n); } } } check(q.poll() == null); }
Example 14
Source File: SubclassGC.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 15
Source File: SubclassGC.java From openjdk-jdk8u with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 16
Source File: CompletionHandlerRelease.java From openjdk-jdk8u with GNU General Public License v2.0 | 5 votes |
private void waitForRefToClear(Reference ref, ReferenceQueue queue) throws InterruptedException { Reference r; while ((r = queue.remove(20)) == null) { System.gc(); } assertEquals(r, ref); assertNull(r.get()); }
Example 17
Source File: SubclassGC.java From jdk8u60 with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 18
Source File: SubclassGC.java From TencentKona-8 with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 19
Source File: SubclassGC.java From dragonwell8_jdk with GNU General Public License v2.0 | 5 votes |
public static final void main(String[] args) throws Exception { System.err.println("\n Regression test for bug 6232010\n"); if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(), systemLoader.getParent()); Class<? extends ObjectOutputStream> cl = Class.forName(SubclassOfOOS.class.getName(), false, loader).asSubclass(ObjectOutputStream.class); Constructor<? extends ObjectOutputStream> cons = cl.getConstructor(OutputStream.class); OutputStream os = new ByteArrayOutputStream(); ObjectOutputStream obj = cons.newInstance(os); final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>(); WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue); cl = null; obj = null; loader = null; cons = null; systemLoader = null; System.err.println("\nStart Garbage Collection right now"); System.gc(); Reference<? extends Class<?>> dequeued = queue.remove(TIMEOUT); if (dequeued == ref) { System.err.println("\nTEST PASSED"); } else { throw new Error(); } }
Example 20
Source File: DGCImplInsulation.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Exception { TestLibrary.suggestSecurityManager(null); Permissions perms = new Permissions(); perms.add(new SocketPermission("*:1024-", "listen")); AccessControlContext acc = new AccessControlContext(new ProtectionDomain[] { new ProtectionDomain( new CodeSource(null, (Certificate[]) null), perms) }); Remote impl = new DGCImplInsulation();; try { Remote stub = (Remote) java.security.AccessController.doPrivileged( new ExportAction(impl)); System.err.println("exported remote object; local stub: " + stub); MarshalledObject mobj = new MarshalledObject(stub); stub = (Remote) mobj.get(); System.err.println("marshalled/unmarshalled stub: " + stub); ReferenceQueue refQueue = new ReferenceQueue(); Reference weakRef = new WeakReference(impl, refQueue); impl = null; System.gc(); if (refQueue.remove(TIMEOUT) == weakRef) { throw new RuntimeException( "TEST FAILED: remote object garbage collected"); } else { System.err.println("TEST PASSED"); stub = null; System.gc(); Thread.sleep(2000); System.gc(); } } finally { try { UnicastRemoteObject.unexportObject(impl, true); } catch (Exception e) { } } }