< prev index next >

src/java.base/share/classes/java/lang/ref/PhantomReference.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 28,37 **** --- 28,40 ---- /** * Phantom reference objects, which are enqueued after the collector * determines that their referents may otherwise be reclaimed. Phantom * references are most often used to schedule post-mortem cleanup actions. + * <p> + * The referent must not be an instance of an inline class; such a value + * can never have another reference to it and cannot be held in a reference type. * * <p> Suppose the garbage collector determines at a certain point in time * that an object is <a href="package-summary.html#reachability"> * phantom reachable</a>. At that time it will atomically clear * all phantom references to that object and all phantom references to
*** 70,79 **** --- 73,84 ---- * it will never be enqueued. * * @param referent the object the new phantom reference will refer to * @param q the queue with which the reference is to be registered, * or {@code null} if registration is not required + * @throws IllegalArgumentException if the referent is an instance of an + * {@link Class#isInlineClass() inlineClass} */ public PhantomReference(T referent, ReferenceQueue<? super T> q) { super(referent, q); }
< prev index next >