assert Thread.holdsLock(this);
assert strongRef != null;
assert target.getEnableDGC();
assert targets.contains(target);
if (strongRef instanceof Unreferenced) {
final Unreferenced obj = (Unreferenced) strongRef;
final Thread t = (Thread) AccessController.doPrivileged(
new NewThreadAction(new Runnable() {
public void run() {
SecurityContext securityContext =
target.getSecurityContext();
AccessController.doPrivileged(securityContext.wrap(
new PrivilegedAction() {
public Object run() {
obj.unreferenced();
return null;
}
}), securityContext.getAccessControlContext());
}
}, "Unreferenced", false, true));