Esempio n. 1
0
 /** Converts a reference to a value. */
 V dereferenceValue(Object o) {
   if (o == null) {
     return null;
   }
   Object value = dereference(valueReferenceType, o);
   if (o instanceof InternalReference) {
     InternalReference reference = (InternalReference) o;
     if (value == null) {
       reference.finalizeReferent(); // old value was garbage collected
     }
   }
   return (V) value;
 }
Esempio n. 2
0
 void cleanUp(Reference reference) {
   try {
     ((InternalReference) reference).finalizeReferent();
   } catch (Throwable t) {
     throw new IllegalStateException("Unable to clean up after reference", t);
   }
 }