From 06151918a4fbc3cd40240d7b1bfdff189bbf077e Mon Sep 17 00:00:00 2001 From: Tigran Mkrtchyan Date: Wed, 19 Feb 2020 15:34:03 +0100 Subject: [PATCH] nfs4: make extended NFSv4StateHandler constructor public Motivation: the NFSv4StateHandler(leaseTime, instanceId, clientStore) constructor can be used by NFS servers to control NFSv4StateHandler instance creation. As extended constructor is package protected, thus control is unavailable to other modules. Modification: make extended NFSv4StateHandler constructor public. Updated javadoc. Result: more control on how instance of NFSv4StateHandler created. Acked-by: Paul Millar Target: master --- .../main/java/org/dcache/nfs/v4/NFSv4StateHandler.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/dcache/nfs/v4/NFSv4StateHandler.java b/core/src/main/java/org/dcache/nfs/v4/NFSv4StateHandler.java index bf50f0aa6..22442aadc 100644 --- a/core/src/main/java/org/dcache/nfs/v4/NFSv4StateHandler.java +++ b/core/src/main/java/org/dcache/nfs/v4/NFSv4StateHandler.java @@ -92,7 +92,15 @@ public NFSv4StateHandler() { this(NFSv4Defaults.NFS4_LEASE_TIME, 0, new EphemeralClientRecoveryStore()); } - NFSv4StateHandler(long leaseTime, int instanceId, ClientRecoveryStore clientStore) { + /** + * Create NFSv4 state handler with given lease time, instance id and client store. + * The {@code instanceId} should uniquely identify this state handler. + * + * @param leaseTime state lease time in seconds. + * @param instanceId the nfs server instance id within deployment. + * @param clientStore store used by state handler to keep track of valid clients. + */ + public NFSv4StateHandler(long leaseTime, int instanceId, ClientRecoveryStore clientStore) { _leaseTime = TimeUnit.SECONDS.toMillis(leaseTime); _clientsByServerId = new Cache<>("NFSv41 clients", 5000, Long.MAX_VALUE, _leaseTime * 2,