RBuffer rbuf= ...; // RBuffer is a remote interface
...
rbuf.put( ... ); // Don't care if rbuf is a remote object
BufferImpl bufImpl= (BufferImpl)rbuf; // rbuf must be local!
// rbuf
In RMI the code above executes correctly only when rbuf references a local
object.RMI does not provide full location transparency, but does provide transparency for invocation (excepting for remote exceptions) and identity test.