diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentResourceStore.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentResourceStore.java
index b959c17..e1d9115 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentResourceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentResourceStore.java
@@ -124,7 +124,7 @@
         TransactionalContinuousResourceStore continuousTxStore = continuousStore.transactional(tx);
         for (Map.Entry<DiscreteResource, List<Resource>> entry : resourceMap.entrySet()) {
             DiscreteResourceId parentId = entry.getKey().id();
-            if (!lookup(discreteTxStore, parentId).isPresent()) {
+            if (!discreteTxStore.lookup(parentId).isPresent()) {
                 return abortTransaction(tx);
             }
 
@@ -407,18 +407,6 @@
                 && continuousTxStore.removeValues(key, continuousValues);
     }
 
-    /**
-     * Returns the resource which has the same key as the specified resource ID
-     * in the set as a value of the map.
-     *
-     * @param id ID of resource to be checked
-     * @return the resource which is regarded as the same as the specified resource
-     */
-    private Optional<Resource> lookup(TransactionalDiscreteResourceStore discreteTxStore,
-                                      DiscreteResourceId id) {
-        return discreteTxStore.lookup(id);
-    }
-
     // internal use only
     static final class ContinuousResourceAllocation {
         private final ContinuousResource original;
