Hi Genius,
I don't understand the following code segment in the server.java:
value =
call.connection.user.doAs
(new PrivilegedExceptionAction<Writable>() {
@Override
public Writable run() throws Exception {
// make the call
return call(call.rpcKind,
call.connection.protocolName,
call.getRpcRequest(), call.timestamp);
}
}
);
I know that it will call the following code in the RPC.java:
public Writable call(RPC.RpcKind rpcKind, String protocol,
Writable rpcRequest, long receiveTime) throws Exception {
return getRpcInvoker(rpcKind).call(this, protocol, rpcRequest,
receiveTime);
}
Could you please explain how it is related between server.java and
RPC.java, and why the call in the server.java will call the call in the
RPC.java? Thanks a lot in advance.