@@ -194,30 +194,26 @@ public RetentionLeases getRetentionLeases() {
194194 *
195195 * @return a tuple indicating whether or not any retention leases were expired, and the non-expired retention leases
196196 */
197- public Tuple <Boolean , RetentionLeases > getRetentionLeases (final boolean expireLeases ) {
198- final RetentionLeases nonExpiredRetentionLeases ;
199- synchronized (this ) {
200- if (expireLeases == false ) {
201- return Tuple .tuple (false , retentionLeases );
202- }
203- assert primaryMode ;
204- // the primary calculates the non-expired retention leases and syncs them to replicas
205- final long currentTimeMillis = currentTimeMillisSupplier .getAsLong ();
206- final long retentionLeaseMillis = indexSettings .getRetentionLeaseMillis ();
207- final Map <Boolean , List <RetentionLease >> partitionByExpiration = retentionLeases
208- .leases ()
209- .stream ()
210- .collect (Collectors .groupingBy (lease -> currentTimeMillis - lease .timestamp () > retentionLeaseMillis ));
211- if (partitionByExpiration .get (true ) == null ) {
212- // early out as no retention leases have expired
213- return Tuple .tuple (false , retentionLeases );
214- }
215- final Collection <RetentionLease > nonExpiredLeases =
216- partitionByExpiration .get (false ) != null ? partitionByExpiration .get (false ) : Collections .emptyList ();
217- retentionLeases = new RetentionLeases (operationPrimaryTerm , retentionLeases .version () + 1 , nonExpiredLeases );
218- nonExpiredRetentionLeases = retentionLeases ;
197+ public synchronized Tuple <Boolean , RetentionLeases > getRetentionLeases (final boolean expireLeases ) {
198+ if (expireLeases == false ) {
199+ return Tuple .tuple (false , retentionLeases );
200+ }
201+ assert primaryMode ;
202+ // the primary calculates the non-expired retention leases and syncs them to replicas
203+ final long currentTimeMillis = currentTimeMillisSupplier .getAsLong ();
204+ final long retentionLeaseMillis = indexSettings .getRetentionLeaseMillis ();
205+ final Map <Boolean , List <RetentionLease >> partitionByExpiration = retentionLeases
206+ .leases ()
207+ .stream ()
208+ .collect (Collectors .groupingBy (lease -> currentTimeMillis - lease .timestamp () > retentionLeaseMillis ));
209+ if (partitionByExpiration .get (true ) == null ) {
210+ // early out as no retention leases have expired
211+ return Tuple .tuple (false , retentionLeases );
219212 }
220- return Tuple .tuple (true , nonExpiredRetentionLeases );
213+ final Collection <RetentionLease > nonExpiredLeases =
214+ partitionByExpiration .get (false ) != null ? partitionByExpiration .get (false ) : Collections .emptyList ();
215+ retentionLeases = new RetentionLeases (operationPrimaryTerm , retentionLeases .version () + 1 , nonExpiredLeases );
216+ return Tuple .tuple (true , retentionLeases );
221217 }
222218
223219 /**
0 commit comments