diff options
Diffstat (limited to 'Acl/Dbal/AclProvider.php')
-rw-r--r-- | Acl/Dbal/AclProvider.php | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Acl/Dbal/AclProvider.php b/Acl/Dbal/AclProvider.php index 58c00d3..5d45655 100644 --- a/Acl/Dbal/AclProvider.php +++ b/Acl/Dbal/AclProvider.php @@ -163,8 +163,17 @@ class AclProvider implements AclProviderInterface // Is it time to load the current batch? if ((self::MAX_BATCH_SIZE === count($currentBatch) || ($i + 1) === $c) && count($currentBatch) > 0) { - $loadedBatch = $this->lookupObjectIdentities($currentBatch, $sids, $oidLookup); - + try { + $loadedBatch = $this->lookupObjectIdentities($currentBatch, $sids, $oidLookup); + } catch (AclNotFoundException $aclNotFoundexception) { + if ($result->count()) { + $partialResultException = new NotAllAclsFoundException('The provider could not find ACLs for all object identities.'); + $partialResultException->setPartialResult($result); + throw $partialResultException; + } else { + throw $aclNotFoundexception; + } + } foreach ($loadedBatch as $loadedOid) { $loadedAcl = $loadedBatch->offsetGet($loadedOid); |