diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DistributedLockManager.java b/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DistributedLockManager.java
index c87ab37..f83b042 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DistributedLockManager.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DistributedLockManager.java
@@ -80,7 +80,10 @@
         throw new UnsupportedOperationException();
     }
 
-    protected CompletableFuture<Void> lockIfAvailable(Lock lock, long waitTimeMillis, int leaseDurationMillis) {
+    protected CompletableFuture<Void> lockIfAvailable(
+            Lock lock,
+            long waitTimeMillis,
+            int leaseDurationMillis) {
         CompletableFuture<Void> future = new CompletableFuture<>();
         locksToAcquire.put(
                 lock.path(),
@@ -103,7 +106,9 @@
 
             if (event.type() == TableModificationEvent.Type.ROW_DELETED) {
                 List<LockRequest> existingRequests = locksToAcquire.get(path);
-                if (existingRequests == null) return;
+                if (existingRequests == null) {
+                    return;
+                }
 
                 Iterator<LockRequest> existingRequestIterator = existingRequests.iterator();
                 while (existingRequestIterator.hasNext()) {
@@ -111,7 +116,7 @@
                     if (request.expirationTime().isAfter(DateTime.now())) {
                         existingRequestIterator.remove();
                     } else {
-                        if (request.lock().tryLock(request.leaseDurationMillis()) == true) {
+                        if (request.lock().tryLock(request.leaseDurationMillis())) {
                             request.future().complete(null);
                             existingRequests.remove(0);
                         }
