Verified Commit f6ea2f76 authored by Dave Long's avatar Dave Long
Browse files

Issue #3377310 by catch, joelpittet, mark_fullmer, smustgrave, TrevorBradley,...

Issue #3377310 by catch, joelpittet, mark_fullmer, smustgrave, TrevorBradley, bkosborne, MWaters, cilefen, capellic: 400 exceptions result from requests for old asset paths which are missing the "theme" query string, possibly from cached pages

(cherry picked from commit 96695551)
parent b71596d0
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ public function onClientError(ExceptionEvent $event) {
      'status_code' => $exception->getStatusCode(),
    ];
    $this->logger->get('client error')
      ->log($error['severity_level'], Error::DEFAULT_ERROR_MESSAGE, $error);
      ->warning(Error::DEFAULT_ERROR_MESSAGE, $error);
  }

  /**
+16 −2
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
namespace Drupal\KernelTests\Core\EventSubscriber;

use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\Logger\RfcLogLevel;
use Drupal\KernelTests\KernelTestBase;
use Symfony\Component\ErrorHandler\BufferingLogger;
use Symfony\Component\HttpFoundation\Request;
@@ -47,6 +48,18 @@ public function testExceptionLogging() {
      503 => 'php',
    ];

    $level_map = [
      400 => RfcLogLevel::WARNING,
      401 => RfcLogLevel::WARNING,
      403 => RfcLogLevel::WARNING,
      404 => RfcLogLevel::WARNING,
      405 => RfcLogLevel::WARNING,
      408 => RfcLogLevel::WARNING,
      501 => RfcLogLevel::ERROR,
      502 => RfcLogLevel::ERROR,
      503 => RfcLogLevel::ERROR,
    ];

    // Ensure that noting is logged.
    $this->assertEmpty($this->container->get($this->testLogServiceName)->cleanLogs());

@@ -60,11 +73,12 @@ public function testExceptionLogging() {
    ini_set('error_log', $error_log);

    $expected_channels = array_values($channel_map);
    $expected_levels = array_values($level_map);

    $logs = $this->container->get($this->testLogServiceName)->cleanLogs();
    foreach ($expected_channels as $key => $expected_channel) {
      $log_message = $logs[$key][2]['channel'];
      $this->assertEquals($expected_channel, $log_message);
      $this->assertEquals($expected_channel, $logs[$key][2]['channel']);
      $this->assertEquals($expected_levels[$key], $logs[$key][0]);
    }
  }