From c0d73dcf53edc4c97229004277cadb7667aa8c44 Mon Sep 17 00:00:00 2001
From: Jaap Jansma <jaap.jansma@civicoop.org>
Date: Sat, 15 Jun 2019 11:49:49 +0200
Subject: [PATCH] #3 data processor returns a big error upon installation

---
 Civi/DataProcessor/Output/UIOutputHelper.php | 6 ++++++
 dataprocessor.php                            | 6 +++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/Civi/DataProcessor/Output/UIOutputHelper.php b/Civi/DataProcessor/Output/UIOutputHelper.php
index bd906c5f..d84710ed 100644
--- a/Civi/DataProcessor/Output/UIOutputHelper.php
+++ b/Civi/DataProcessor/Output/UIOutputHelper.php
@@ -24,6 +24,12 @@ class UIOutputHelper {
    */
   public static function alterMenu(&$items) {
     $factory = dataprocessor_get_factory();
+    // Check whether the factory exists. Usually just after
+    // installation the factory does not exists but then no
+    // outputs exists either. So we can safely return this function.
+    if (!$factory) {
+      return;
+    }
 
     $sql = "
     SELECT o.permission, p.id, p.title, o.configuration, o.type, o.id as output_id 
diff --git a/dataprocessor.php b/dataprocessor.php
index 303b0e37..a8d49f52 100644
--- a/dataprocessor.php
+++ b/dataprocessor.php
@@ -10,7 +10,11 @@ use \Symfony\Component\DependencyInjection\Definition;
  * @return \Civi\DataProcessor\Factory
  */
 function dataprocessor_get_factory() {
-  return \Civi::service('data_processor_factory');
+  $container = \Civi::container();
+  if ($container->has('data_processor_factory')) {
+    return \Civi::service('data_processor_factory');
+  }
+  return null;
 }
 
 /**
-- 
GitLab