@Override public void finalizeReference() { internalMap.remove(key, this); super.finalizeReference(); } };
public MetaClass getWeakMetaClass() { // safe value here to avoid multiple reads with possibly // differing values due to concurrency ManagedReference<MetaClass> weakRef = weakMetaClass; return weakRef == null ? null : weakRef.get(); }
private T getLocked (boolean force) { lock (); try { ManagedReference<T> resRef = reference; if (!force && resRef != INIT) return resRef.get(); T res = initValue(); if (res == null) { reference = NULL_REFERENCE; } else { reference = new ManagedReference<T>(bundle,res); } return res; } finally { unlock(); } }
public void setWeakMetaClass(MetaClass answer) { version.incrementAndGet(); strongMetaClass = null; ManagedReference<MetaClass> newRef = null; if (answer != null) { newRef = new ManagedReference<MetaClass> (softBundle,answer); } replaceWeakMetaClassRef(newRef); }
private void replaceWeakMetaClassRef(ManagedReference<MetaClass> newRef) { // safe value here to avoid multiple reads with possibly // differing values due to concurrency ManagedReference<MetaClass> weakRef = weakMetaClass; if (weakRef != null) { weakRef.clear(); } weakMetaClass = newRef; }
public void setWeakMetaClass(MetaClass answer) { version++; strongMetaClass = null; if (answer == null) { weakMetaClass = null; } else { weakMetaClass = new ManagedReference<MetaClass> (softBundle,answer); } }
public void finalizeReference(){ clear(); } }
/** * Returns the value stored for the given key at the point of call. * @param key a non null key * @return the value stored in the map for the given key */ public V get(K key) { ManagedReference<V> ref = internalMap.get(key); if (ref!=null) return ref.get(); return null; }
@Override public void finalizeReference() { segment.removeEntry(this); super.finalizeReference(); }
private T getLocked (boolean force) { lock (); try { ManagedReference<T> resRef = reference; if (!force && resRef != INIT) return resRef.get(); T res = initValue(); if (res == null) { reference = NULL_REFERENCE; } else { reference = new ManagedReference<T>(bundle,res); } return res; } finally { unlock(); } }
public void setWeakMetaClass(MetaClass answer) { version++; strongMetaClass = null; if (answer == null) { weakMetaClass = null; } else { weakMetaClass = new ManagedReference<MetaClass> (softBundle,answer); } }
public void finalizeReference(){ clear(); } }
public String toString() { T res = reference.get(); if (res == null) return "<null>"; else return res.toString(); } }
@Override public void finalizeReference() { super.finalizeReference(); internalMap.remove(key, get()); } };
private T getLocked (boolean force) { lock (); try { ManagedReference<T> resRef = reference; if (!force && resRef != INIT) return resRef.get(); T res = initValue(); if (res == null) { reference = NULL_REFERENCE; } else { reference = new ManagedReference<T>(bundle,res); } return res; } finally { unlock(); } }
public void setWeakMetaClass(MetaClass answer) { version++; strongMetaClass = null; if (answer == null) { weakMetaClass = null; } else { weakMetaClass = new ManagedReference<MetaClass> (softBundle,answer); } }
public void finalizeReference(){ clear(); } }
public T get() { ManagedReference<T> resRef = reference; if (resRef == INIT) return getLocked(false); if (resRef == NULL_REFERENCE) return null; T res = resRef.get(); // res== null means it got collected if (res==null) return getLocked(true); return res; }
public void finalizeRef() { System.out.println(name + " unloaded " + count.decrementAndGet() + " classes kept"); super.finalizeReference(); } }
private T getLocked (boolean force) { lock (); try { ManagedReference<T> resRef = reference; if (!force && resRef != INIT) return resRef.get(); T res = initValue(); if (res == null) { reference = NULL_REFERENCE; } else { reference = new ManagedReference<T>(bundle,res); } return res; } finally { unlock(); } }