< prev index next >

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

Print this page
rev 55532 : 8223582: [lworld] WeakReference of an inline type should throw

*** 28,37 **** --- 28,40 ---- /** * Soft reference objects, which are cleared at the discretion of the garbage * collector in response to memory demand. Soft references are most often used * to implement memory-sensitive caches. + * <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 that the garbage collector determines at a certain point in time * that an object is <a href="package-summary.html#reachability">softly * reachable</a>. At that time it may choose to clear atomically all soft * references to that object and all soft references to any other
*** 78,87 **** --- 81,92 ---- /** * Creates a new soft reference that refers to the given object. The new * reference is not registered with any queue. * * @param referent object the new soft reference will refer to + * @throws IllegalArgumentException if the referent is an instance of an + * {@link Class#isInlineClass() inlineClass} */ public SoftReference(T referent) { super(referent); this.timestamp = clock; }
*** 91,101 **** * registered with the given queue. * * @param referent object the new soft reference will refer to * @param q the queue with which the reference is to be registered, * or {@code null} if registration is not required ! * */ public SoftReference(T referent, ReferenceQueue<? super T> q) { super(referent, q); this.timestamp = clock; } --- 96,107 ---- * registered with the given queue. * * @param referent object the new soft 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 SoftReference(T referent, ReferenceQueue<? super T> q) { super(referent, q); this.timestamp = clock; }
< prev index next >