diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index edbd2b3a2..278aee6f0 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -75,7 +75,9 @@ use OCP\Notification\IManager as NotificationManager; use OCP\Share\IManager; use OCP\User\Events\UserDeletedEvent; use OCP\Util; +use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; class Application extends App implements IBootstrap { public const APP_ID = 'deck'; @@ -102,7 +104,16 @@ class Application extends App implements IBootstrap { $context->injectFn(Closure::fromCallable([$this, 'registerCollaborationResources'])); $context->injectFn(function (IManager $shareManager) { - $shareManager->registerShareProvider(DeckShareProvider::class); + try { + $shareManager->registerShareProvider(DeckShareProvider::class); + } catch (\Throwable $e) { + if (!$e instanceof ContainerExceptionInterface) { + Server::get(LoggerInterface::class)->error( + $e->getMessage(), + ['exception' => $e] + ); + } + } }); $context->injectFn(function (Listener $listener, IEventDispatcher $eventDispatcher) { diff --git a/lib/Service/AttachmentService.php b/lib/Service/AttachmentService.php index c7c4532a2..ed3981447 100644 --- a/lib/Service/AttachmentService.php +++ b/lib/Service/AttachmentService.php @@ -40,6 +40,9 @@ use OCP\AppFramework\Db\IMapperException; use OCP\AppFramework\Http\Response; use OCP\IL10N; use OCP\IUserManager; +use OCP\Server; +use Psr\Container\ContainerExceptionInterface; +use Psr\Log\LoggerInterface; class AttachmentService { private $attachmentMapper; @@ -94,7 +97,16 @@ class AttachmentService { * @throws \OCP\AppFramework\QueryException */ public function registerAttachmentService($type, $class) { - $this->services[$type] = $this->application->getContainer()->query($class); + try { + $this->services[$type] = $this->application->getContainer()->query($class); + } catch (\Throwable $e) { + if (!$e instanceof ContainerExceptionInterface) { + Server::get(LoggerInterface::class)->error( + $e->getMessage(), + ['exception' => $e] + ); + } + } } /**