Merge pull request #17545 from nextcloud/bugfix/noid/workflow-catch

Ignore unavailable entity/operation classes
This commit is contained in:
Roeland Jago Douma 2019-10-21 09:25:46 +02:00 committed by GitHub
commit c92e64b537
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 6 deletions

View File

@ -22,6 +22,7 @@
namespace OCA\WorkflowEngine\AppInfo;
use OCA\WorkflowEngine\Manager;
use OCP\AppFramework\QueryException;
use OCP\Template;
use OCA\WorkflowEngine\Controller\RequestTime;
use OCP\WorkflowEngine\IEntity;
@ -89,12 +90,16 @@ class Application extends \OCP\AppFramework\App {
$eventName,
function (GenericEvent $event) use ($eventName, $operationClass, $entityClass) {
$ruleMatcher = $this->manager->getRuleMatcher();
/** @var IEntity $entity */
$entity = $this->getContainer()->query($entityClass);
$entity->prepareRuleMatcher($ruleMatcher, $eventName, $event);
/** @var IOperation $operation */
$operation = $this->getContainer()->query($operationClass);
$operation->onEvent($eventName, $event, $ruleMatcher);
try {
/** @var IEntity $entity */
$entity = $this->getContainer()->query($entityClass);
$entity->prepareRuleMatcher($ruleMatcher, $eventName, $event);
/** @var IOperation $operation */
$operation = $this->getContainer()->query($operationClass);
$operation->onEvent($eventName, $event, $ruleMatcher);
} catch (QueryException $e) {
// Ignore query exceptions since they might occur when an entity/operation were setup before by an app that is disabled now
}
}
);
}, $eventNames);