diff --git a/core/lib/Drupal/Core/Queue/DelayedRequeueException.php b/core/lib/Drupal/Core/Queue/DelayedRequeueException.php index 2f402fedb5195c3dc8ba47d8bfc7a69adb083ddf..404ab0dc3002b92805490449d694e9e3d7cbac71 100644 --- a/core/lib/Drupal/Core/Queue/DelayedRequeueException.php +++ b/core/lib/Drupal/Core/Queue/DelayedRequeueException.php @@ -29,9 +29,16 @@ class DelayedRequeueException extends \RuntimeException { * Constructs a DelayedRequeueException. * * @param int $delay - * The desired delay interval for this item. + * The desired delay interval for this item (in seconds). + * @param string $message + * The error message. + * @param int $code + * The error code. + * @param \Throwable|null $previous + * The previous throwable used for the exception chaining. */ - public function __construct(int $delay = 0) { + public function __construct(int $delay = 0, string $message = '', int $code = 0, \Throwable $previous = NULL) { + parent::__construct($message, $code, $previous); if ($delay > 0) { $this->delay = $delay; } diff --git a/core/tests/Drupal/Tests/Core/Queue/QueueExceptionsTest.php b/core/tests/Drupal/Tests/Core/Queue/QueueExceptionsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..b95bf82a0a28e3f602fbae415375d008422f0c06 --- /dev/null +++ b/core/tests/Drupal/Tests/Core/Queue/QueueExceptionsTest.php @@ -0,0 +1,32 @@ +<?php + +namespace Drupal\Tests\Core\Queue; + +use Drupal\Core\Queue\DelayedRequeueException; +use Drupal\Tests\UnitTestCase; + +/** + * Tests queue exceptions. + * + * @group Queue + */ +class QueueExceptionsTest extends UnitTestCase { + + /** + * Tests that the `DelayedRequeueException` calls parent constructor. + */ + public function testDelayedRequeueExceptionCallsParentConstructor(): void { + $without_previous = new DelayedRequeueException(50, 'Delay the processing.'); + static::assertSame(50, $without_previous->getDelay()); + static::assertSame('Delay the processing.', $without_previous->getMessage()); + static::assertSame(0, $without_previous->getCode()); + static::assertNull($without_previous->getPrevious()); + + $with_previous = new DelayedRequeueException(100, 'Increase the delay.', 200, $without_previous); + static::assertSame(100, $with_previous->getDelay()); + static::assertSame('Increase the delay.', $with_previous->getMessage()); + static::assertSame(200, $with_previous->getCode()); + static::assertSame($without_previous, $with_previous->getPrevious()); + } + +}