src/java.rmi/share/classes/sun/rmi/transport/DGCClient.java

Print this page
rev 13995 : 8153286: Move sun.misc.GC to java.rmi ( sun.rmi.transport )
Reviewed-by: alanb, erikj


  24  */
  25 package sun.rmi.transport;
  26 
  27 import java.lang.ref.PhantomReference;
  28 import java.lang.ref.ReferenceQueue;
  29 import java.net.SocketPermission;
  30 import java.security.AccessController;
  31 import java.security.PrivilegedAction;
  32 import java.util.HashMap;
  33 import java.util.HashSet;
  34 import java.util.Iterator;
  35 import java.util.List;
  36 import java.util.Map;
  37 import java.util.Set;
  38 import java.rmi.ConnectException;
  39 import java.rmi.RemoteException;
  40 import java.rmi.dgc.DGC;
  41 import java.rmi.dgc.Lease;
  42 import java.rmi.dgc.VMID;
  43 import java.rmi.server.ObjID;
  44 import sun.misc.GC;
  45 import sun.rmi.runtime.NewThreadAction;
  46 import sun.rmi.server.UnicastRef;
  47 import sun.rmi.server.Util;
  48 
  49 import java.security.AccessControlContext;
  50 import java.security.Permissions;
  51 import java.security.ProtectionDomain;
  52 
  53 /**
  54  * DGCClient implements the client-side of the RMI distributed garbage
  55  * collection system.
  56  *
  57  * The external interface to DGCClient is the "registerRefs" method.
  58  * When a LiveRef to a remote object enters the VM, it needs to be
  59  * registered with the DGCClient to participate in distributed garbage
  60  * collection.
  61  *
  62  * When the first LiveRef to a particular remote object is registered,
  63  * a "dirty" call is made to the server-side distributed garbage
  64  * collector for the remote object, which returns a lease guaranteeing




  24  */
  25 package sun.rmi.transport;
  26 
  27 import java.lang.ref.PhantomReference;
  28 import java.lang.ref.ReferenceQueue;
  29 import java.net.SocketPermission;
  30 import java.security.AccessController;
  31 import java.security.PrivilegedAction;
  32 import java.util.HashMap;
  33 import java.util.HashSet;
  34 import java.util.Iterator;
  35 import java.util.List;
  36 import java.util.Map;
  37 import java.util.Set;
  38 import java.rmi.ConnectException;
  39 import java.rmi.RemoteException;
  40 import java.rmi.dgc.DGC;
  41 import java.rmi.dgc.Lease;
  42 import java.rmi.dgc.VMID;
  43 import java.rmi.server.ObjID;

  44 import sun.rmi.runtime.NewThreadAction;
  45 import sun.rmi.server.UnicastRef;
  46 import sun.rmi.server.Util;
  47 
  48 import java.security.AccessControlContext;
  49 import java.security.Permissions;
  50 import java.security.ProtectionDomain;
  51 
  52 /**
  53  * DGCClient implements the client-side of the RMI distributed garbage
  54  * collection system.
  55  *
  56  * The external interface to DGCClient is the "registerRefs" method.
  57  * When a LiveRef to a remote object enters the VM, it needs to be
  58  * registered with the DGCClient to participate in distributed garbage
  59  * collection.
  60  *
  61  * When the first LiveRef to a particular remote object is registered,
  62  * a "dirty" call is made to the server-side distributed garbage
  63  * collector for the remote object, which returns a lease guaranteeing