From 63c3ce45b4fb1874f3628f796da990cf5d4f71ad Mon Sep 17 00:00:00 2001 From: Dave Long <dave@longwaveconsulting.com> Date: Mon, 5 Feb 2024 13:09:00 +0000 Subject: [PATCH] Issue #3419230 by alexpott: Drush error on site-install --- core/lib/Drupal/Core/DrupalKernel.php | 2 +- .../Tests/Core/DrupalKernel/DrupalKernelTest.php | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php index c0bdc552582e..6c1a8e1bbaa4 100644 --- a/core/lib/Drupal/Core/DrupalKernel.php +++ b/core/lib/Drupal/Core/DrupalKernel.php @@ -695,7 +695,7 @@ public function getServiceProviders($origin) { * @return void */ public function terminate(Request $request, Response $response) { - if ($this->getHttpKernel() instanceof TerminableInterface) { + if ($this->booted && $this->getHttpKernel() instanceof TerminableInterface) { // Only run terminate() when essential services have been set up properly // by preHandle() before. if ($this->prepared === TRUE) { diff --git a/core/tests/Drupal/Tests/Core/DrupalKernel/DrupalKernelTest.php b/core/tests/Drupal/Tests/Core/DrupalKernel/DrupalKernelTest.php index 95630123c348..8c86bd922e1b 100644 --- a/core/tests/Drupal/Tests/Core/DrupalKernel/DrupalKernelTest.php +++ b/core/tests/Drupal/Tests/Core/DrupalKernel/DrupalKernelTest.php @@ -4,12 +4,14 @@ namespace Drupal\Tests\Core\DrupalKernel; +use Composer\Autoload\ClassLoader; use Drupal\Core\DrupalKernel; use Drupal\Core\Test\TestKernel; use Drupal\Tests\Core\DependencyInjection\Fixture\BarClass; use Drupal\Tests\UnitTestCase; use org\bovigo\vfs\vfsStream; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; /** * @coversDefaultClass \Drupal\Core\DrupalKernel @@ -152,6 +154,16 @@ public function testGetServiceIdMapping() { $this->assertEquals($container->get('kernel')->getServiceIdMapping()[$container->generateServiceIdHash($service)], 'bar'); } + /** + * @covers ::terminate + * @runInSeparateProcess + */ + public function testUnBootedTerminate() { + $kernel = new DrupalKernel('test', new ClassLoader()); + $kernel->terminate(new Request(), new Response()); + $this->assertTrue(TRUE, "\Drupal\Core\DrupalKernel::terminate() called without error on kernel which has not booted"); + } + } /** -- GitLab