diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/RecoveryTask.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/RecoveryTask.java
index c941258..968876d 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/RecoveryTask.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/RecoveryTask.java
@@ -42,10 +42,10 @@
 
     private static final Logger LOGGER = LogManager.getLogger();
     private static final Level level = Level.INFO;
-    private final ActiveEntityEventsListener listener;
+    protected final ActiveEntityEventsListener listener;
     private volatile boolean cancelRecovery = false;
     private final IRetryPolicyFactory retryPolicyFactory;
-    private final MetadataProvider metadataProvider;
+    protected final MetadataProvider metadataProvider;
     private final IClusterStateManager clusterStateManager;
 
     public RecoveryTask(ICcApplicationContext appCtx, ActiveEntityEventsListener listener,
@@ -118,8 +118,9 @@
                 }
             }
             IMetadataLockManager lockManager = metadataProvider.getApplicationContext().getMetadataLockManager();
+            IMetadataLockUtil lockUtil = metadataProvider.getApplicationContext().getMetadataLockUtil();
             try {
-                acquireRecoveryLocks(lockManager);
+                acquireRecoveryLocks(lockManager, lockUtil);
                 synchronized (listener) {
                     try {
                         if (!cancelRecovery && listener.getState() == ActivityState.TEMPORARILY_FAILED) {
@@ -173,7 +174,8 @@
         return null;
     }
 
-    protected void acquireRecoveryLocks(IMetadataLockManager lockManager) throws AlgebricksException {
+    protected void acquireRecoveryLocks(IMetadataLockManager lockManager, IMetadataLockUtil lockUtil)
+            throws AlgebricksException {
         EntityId entityId = listener.getEntityId();
         lockManager.acquireActiveEntityWriteLock(metadataProvider.getLocks(), entityId.getDataverseName(),
                 entityId.getEntityName());
