NFS4Client { public synchronized boolean needReclaim() { return !_reclaim_completed; } NFS4Client(NFSv4StateHandler stateHandler, clientid4 clientId, int minorVersion, InetSocketAddress clientAddress, InetSocketAddress localAddress,
            byte[] ownerID, verifier4 verifier, Principal principal, long leaseTime, boolean calbackNeeded); void setCB(ClientCB cb); ClientCB getCB(); int getMinorVersion(); byte[] getOwnerId(); verifier4 verifier(); clientid4 getId(); boolean verifierEquals(verifier4 verifier); synchronized boolean isConfirmed(); synchronized void setConfirmed(); boolean isLeaseValid(); void updateLeaseTime(); void refreshLeaseTime(); synchronized void reset(); InetSocketAddress getRemoteAddress(); InetSocketAddress getLocalAddress(); int currentSeqID(); NFS4State createState(StateOwner stateOwner, NFS4State openState); NFS4State createState(StateOwner stateOwner); void releaseState(stateid4 stateid); void tryReleaseState(stateid4 stateid); NFS4State state(stateid4 stateid); @Override String toString(); Collection<NFSv41Session> sessions(); synchronized NFSv41Session createSession(int sequence, int cacheSize, int cbCacheSize, int maxOps, int maxCbOps); synchronized void removeSession(sessionid4 id); synchronized NFSv41Session getSession(sessionid4 id); boolean hasSessions(); Principal principal(); boolean hasState(); void attachState(NFS4State state); void detachState(NFS4State state); final void tryDispose(); synchronized void reclaimComplete(); synchronized void wantReclaim(); synchronized boolean needReclaim(); boolean isCallbackNeede(); synchronized StateOwner getOrCreateOwner(byte[] owner, seqid4 seq); synchronized void releaseOwner(byte[] owner);  }
@Test public void testFreshV41ClientNeedReclaim() { assertTrue(nfsClient.needReclaim()); }
@Test public void testFreshV40ClientDontNeedReclaim() throws UnknownHostException { assertFalse(createClient(stateHandler, 0).needReclaim()); }