APIdia Launch Partner
Top Description Fields Constructors Methods
sun.rmi.transport

public final Class DGCImpl_Stub

extends RemoteStub
implements DGC
Class Inheritance
All Implemented Interfaces
java.rmi.dgc.DGC, java.rmi.Remote
Annotations
@SuppressWarnings:deprecation, serial
Imports
sun.rmi.transport.tcp.TCPConnection, java.io.IOException, .ObjectInputFilter, java.rmi.RemoteException, java.rmi.dgc.Lease, .VMID, java.rmi.server.UID, java.util.ArrayList

References Deprecated

RemoteStub is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

Stubs to invoke DGC remote methods. Originally generated from RMIC but frozen to insert serialFilter.

Field Summary

Modifier and TypeField and Description
private static int
DGCCLIENT_MAX_ARRAY_SIZE

Registry maximum array size in remote invocations.

private static int
DGCCLIENT_MAX_DEPTH

Registry max depth of remote invocations.

private static final long
private static final Operation[]
operations

References Deprecated Operation is deprecated or references (maybe indirectly) at least one deprecated element.

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
public void
clean(ObjID[] $param_arrayOf_ObjID_1, long $param_long_2, VMID $param_VMID_3, boolean $param_boolean_4)

Implements java.rmi.dgc.DGC.clean.

The clean call removes the 'vmid' from the reference list of each remote object indicated in 'id's.

public Lease
dirty(ObjID[] $param_arrayOf_ObjID_1, long $param_long_2, Lease $param_Lease_3)

Implements java.rmi.dgc.DGC.dirty.

The dirty call requests leases for the remote object references associated with the object identifiers contained in the array 'ids'.

private static ObjectInputFilter.Status
leaseFilter(ObjectInputFilter.FilterInfo
access to class, arrayLength, etc.
filterInfo
)

ObjectInputFilter to filter DGCClient return value (a Lease).

Inherited from java.rmi.server.RemoteStub:
setRef

Field Detail

DGCCLIENT_MAX_ARRAY_SIZEback to summary
private static int DGCCLIENT_MAX_ARRAY_SIZE

Registry maximum array size in remote invocations.

DGCCLIENT_MAX_DEPTHback to summary
private static int DGCCLIENT_MAX_DEPTH

Registry max depth of remote invocations.

interfaceHashback to summary
private static final long interfaceHash
operationsback to summary
private static final Operation[] operations

References Deprecated

Operation is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

Constructor Detail

DGCImpl_Stubback to summary
public DGCImpl_Stub()
DGCImpl_Stubback to summary
public DGCImpl_Stub(RemoteRef ref)

Method Detail

cleanback to summary
public void clean(ObjID[] $param_arrayOf_ObjID_1, long $param_long_2, VMID $param_VMID_3, boolean $param_boolean_4) throws RemoteException

Implements java.rmi.dgc.DGC.clean.

Doc from java.rmi.dgc.DGC.clean.

The clean call removes the 'vmid' from the reference list of each remote object indicated in 'id's. The sequence number is used to detect late clean calls. If the argument 'strong' is true, then the clean call is a result of a failed dirty call, thus the sequence number for the client 'vmid' needs to be remembered.

Exceptions
RemoteException:
if clean call fails
dirtyback to summary
public Lease dirty(ObjID[] $param_arrayOf_ObjID_1, long $param_long_2, Lease $param_Lease_3) throws RemoteException

Implements java.rmi.dgc.DGC.dirty.

Doc from java.rmi.dgc.DGC.dirty.

The dirty call requests leases for the remote object references associated with the object identifiers contained in the array 'ids'. The 'lease' contains a client's unique VM identifier (VMID) and a requested lease period. For each remote object exported in the local VM, the garbage collector maintains a reference list-a list of clients that hold references to it. If the lease is granted, the garbage collector adds the client's VMID to the reference list for each remote object indicated in 'ids'. The 'sequenceNum' parameter is a sequence number that is used to detect and discard late calls to the garbage collector. The sequence number should always increase for each subsequent call to the garbage collector. Some clients are unable to generate a VMID, since a VMID is a universally unique identifier that contains a host address which some clients are unable to obtain due to security restrictions. In this case, a client can use a VMID of null, and the distributed garbage collector will assign a VMID for the client. The dirty call returns a Lease object that contains the VMID used and the lease period granted for the remote references (a server may decide to grant a smaller lease period than the client requests). A client must use the VMID the garbage collector uses in order to make corresponding clean calls when the client drops remote object references. A client VM need only make one initial dirty call for each remote reference referenced in the VM (even if it has multiple references to the same remote object). The client must also make a dirty call to renew leases on remote references before such leases expire. When the client no longer has any references to a specific remote object, it must schedule a clean call for the object ID associated with the reference.

Exceptions
RemoteException:
if dirty call fails
leaseFilterback to summary
private static ObjectInputFilter.Status leaseFilter(ObjectInputFilter.FilterInfo filterInfo)

ObjectInputFilter to filter DGCClient return value (a Lease). The list of acceptable classes is very short and explicit. The depth and array sizes are limited.

The filter must accept normal and exception returns. A DGC server may throw exceptions that may have a cause and suppressed exceptions. Only exceptions in java.base and java.rmi are allowed.

Parameters
filterInfo:ObjectInputFilter.FilterInfo

access to class, arrayLength, etc.

Returns:ObjectInputFilter.Status

ObjectInputFilter.Status#ALLOWED if allowed, ObjectInputFilter.Status#REJECTED if rejected, otherwise ObjectInputFilter.Status#UNDECIDED