diff --git a/src/Entity/MetadataCollection.php b/src/Entity/MetadataCollection.php
index <HASH>..<HASH> 100644
--- a/src/Entity/MetadataCollection.php
+++ b/src/Entity/MetadataCollection.php
@@ -108,7 +108,9 @@ class MetadataCollection {
 		$cacheKey = self::$cachePrefix . 'metadata_entities_list';
 		$isCacheEnabled = $this->getClient()->isCacheEnabled();
 
-		if ( !count( $this->cachedEntitiesList ) && $isCacheEnabled
+		if ( count( $this->cachedEntitiesList ) ) {
+			return $this->cachedEntitiesList;
+		} elseif ( !count( $this->cachedEntitiesList ) && $isCacheEnabled
 		     && $this->getCache()->exists( $cacheKey ) ) { // entities list exists
 			$this->cachedEntitiesList = $this->getCache()->get( $cacheKey );
 		} else { // entities list is not loaded
Entities metadata cache would be regenerated repeatedly

If MetadataCollection::getEntitiesList() is invoked the second time,
it would regenerate metadata cache despite entity metadata cache
being in memory already.