logger->info(self::LOG_PREFIX.'Received one message', ['storedObjectVersionId' => $message->storedObjectVersionId]); $storedObjectVersion = $this->storedObjectVersionRepository->find($message->storedObjectVersionId); if (null === $storedObjectVersion) { $this->logger->error(self::LOG_PREFIX.'StoredObjectVersion not found in database', ['storedObjectVersionId' => $message->storedObjectVersionId]); throw new \RuntimeException('StoredObjectVersion not found with id '.$message->storedObjectVersionId); } if ($storedObjectVersion->hasPointInTimes()) { throw new UnrecoverableMessageHandlingException('the stored object version is now associated with a point in time'); } $storedObject = $storedObjectVersion->getStoredObject(); if ($this->storedObjectManager->exists($storedObjectVersion)) { $this->storedObjectManager->delete($storedObjectVersion); } else { $this->logger->notice( self::LOG_PREFIX.'Stored object version does not exists any more.', ['storedObjectVersionName' => $storedObjectVersion->getFilename()], ); } // to ensure an immediate deletion $this->entityManager->remove($storedObjectVersion); if (StoredObject::canBeDeleted($this->clock->now(), $storedObject)) { $this->entityManager->remove($storedObject); } $this->entityManager->flush(); // clear the entity manager for future usage $this->entityManager->clear(); } }