### Question:
RpcProgramNfs3 extends RpcProgram implements Nfs3Interface { @Override public READDIRPLUS3Response readdirplus(XDR xdr, RpcInfo info) { return readdirplus(xdr, getSecurityHandler(info), info.remoteAddress()); } RpcProgramNfs3(NfsConfiguration config, DatagramSocket registrationSocket,
      boolean allowInsecurePorts); @Override void startDaemons(); @Override NFS3Response nullProcedure(); @Override GETATTR3Response getattr(XDR xdr, RpcInfo info); @Override SETATTR3Response setattr(XDR xdr, RpcInfo info); @Override LOOKUP3Response lookup(XDR xdr, RpcInfo info); @Override ACCESS3Response access(XDR xdr, RpcInfo info); @Override READLINK3Response readlink(XDR xdr, RpcInfo info); @Override READ3Response read(XDR xdr, RpcInfo info); @Override WRITE3Response write(XDR xdr, RpcInfo info); @Override CREATE3Response create(XDR xdr, RpcInfo info); @Override MKDIR3Response mkdir(XDR xdr, RpcInfo info); @Override READDIR3Response mknod(XDR xdr, RpcInfo info); @Override REMOVE3Response remove(XDR xdr, RpcInfo info); @Override RMDIR3Response rmdir(XDR xdr, RpcInfo info); @Override RENAME3Response rename(XDR xdr, RpcInfo info); @Override SYMLINK3Response symlink(XDR xdr, RpcInfo info); @Override READDIR3Response link(XDR xdr, RpcInfo info); @Override READDIR3Response readdir(XDR xdr, RpcInfo info); READDIR3Response readdir(XDR xdr, SecurityHandler securityHandler,
      SocketAddress remoteAddress); @Override READDIRPLUS3Response readdirplus(XDR xdr, RpcInfo info); @Override FSSTAT3Response fsstat(XDR xdr, RpcInfo info); @Override FSINFO3Response fsinfo(XDR xdr, RpcInfo info); @Override PATHCONF3Response pathconf(XDR xdr, RpcInfo info); @Override COMMIT3Response commit(XDR xdr, RpcInfo info); @Override void handleInternal(ChannelHandlerContext ctx, RpcInfo info); static final int DEFAULT_UMASK; static final FsPermission umask; }### Answer:
@Test(timeout = 60000) public void testReaddirplus() throws Exception { HdfsFileStatus status = nn.getRpcServer().getFileInfo(testdir); long dirId = status.getFileId(); FileHandle handle = new FileHandle(dirId); XDR xdr_req = new XDR(); handle.serialize(xdr_req); xdr_req.writeLongAsHyper(0); xdr_req.writeLongAsHyper(0); xdr_req.writeInt(3); xdr_req.writeInt(2); READDIRPLUS3Response response1 = nfsd.readdirplus(xdr_req.asReadOnlyWrap(), securityHandlerUnpriviledged, new InetSocketAddress("localhost", 1234)); assertEquals("Incorrect return code:", Nfs3Status.NFS3ERR_ACCES, response1.getStatus()); READDIRPLUS3Response response2 = nfsd.readdirplus(xdr_req.asReadOnlyWrap(), securityHandler, new InetSocketAddress("localhost", 1234)); assertEquals("Incorrect return code:", Nfs3Status.NFS3_OK, response2.getStatus()); }