Batch payment page breaks when an exported activity has no file to download
I had a batch export fail because max_execution_time
failed. This left me with an exported batch without an export file - which causes the View Batches page to fail with the backtrace below.
My patch will prevent the page from crashing so it's possible to view the batch page,
May 28 20:13:12 [info] $backTrace = #0 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Core/Error.php(385): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Core/DAO.php(1196): CRM_Core_Error::fatal()
#2 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Batch/BAO/Batch.php(337): CRM_Core_DAO::getFieldValue("CRM_Core_DAO_EntityFile", NULL, "file_id", "entity_id")
#3 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Batch/BAO/Batch.php(172): CRM_Batch_BAO_Batch::getBatchList((Array:31))
#4 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Batch/Page/AJAX.php(100): CRM_Batch_BAO_Batch::getBatchListSelector((Array:31))
#5 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(277): CRM_Batch_Page_AJAX::getBatchList()
#6 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(85): CRM_Core_Invoke::runItem((Array:12))
#7 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3))
#8 /home/jon/local/agbud8/htdocs/web/modules/contrib/civicrm/src/Civicrm.php(88): CRM_Core_Invoke::invoke((Array:3))
#9 /home/jon/local/agbud8/htdocs/web/modules/contrib/civicrm/src/Controller/CivicrmController.php(75): Drupal\civicrm\Civicrm->invoke((Array:3))
#10 [internal function](): Drupal\civicrm\Controller\CivicrmController->main((Array:3), "")
#11 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array((Array:2), (Array:2))
#12 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/Render/Renderer.php(582): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#13 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#14 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext((Array:2), (Array:2))
#15 /home/jon/local/agbud8/htdocs/vendor/symfony/http-kernel/HttpKernel.php(151): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#16 /home/jon/local/agbud8/htdocs/vendor/symfony/http-kernel/HttpKernel.php(68): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#17 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#18 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#19 /home/jon/local/agbud8/htdocs/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#20 /home/jon/local/agbud8/htdocs/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#21 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#22 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(52): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#23 /home/jon/local/agbud8/htdocs/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#24 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/DrupalKernel.php(693): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#25 /home/jon/local/agbud8/htdocs/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#26 {main}