< prev index next >

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

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

@@ -28,10 +28,13 @@
 
 /**
  * Weak reference objects, which do not prevent their referents from being
  * made finalizable, finalized, and then reclaimed.  Weak references are most
  * often used to implement canonicalizing mappings.
+ * <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">weakly
  * reachable</a>.  At that time it will atomically clear all weak references to
  * that object and all weak references to any other weakly-reachable objects

@@ -50,10 +53,12 @@
     /**
      * Creates a new weak reference that refers to the given object.  The new
      * reference is not registered with any queue.
      *
      * @param referent object the new weak reference will refer to
+     * @throws IllegalArgumentException if the referent is an instance of an
+     *         {@link Class#isInlineClass() inlineClass}
      */
     public WeakReference(T referent) {
         super(referent);
     }
 

@@ -62,10 +67,12 @@
      * registered with the given queue.
      *
      * @param referent object the new weak 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 WeakReference(T referent, ReferenceQueue<? super T> q) {
         super(referent, q);
     }
 
< prev index next >